Use WPSpell

<< Click to Display Table of Contents >>

Navigation:  Programming > Adding Spellcheck >

Use WPSpell

WPSpell is an addon to WPTools.

 

1) Please add the required units to the uses clause

 

uses WPSpell_link, WPSpell_Controller, WPSpell_OptForm, WPSpell_StdForm

 

2) Create a TWPSpellController (you can also drop the component on the form) and set the properties. (Note: This step is not required if you are using the DEMO version since here the SpellController is provided by a DLL - the registered version does not use a DLL)

 

in TForm we need a variable:

FSpellControler : TWPSpellController;

 

This variable is initialized in the event OnCreate

 

procedure TForm1.FormCreate(Sender: TObject);

begin

FSpellControler := TWPSpellController.Create(self);

 FSpellControler.PersistencyMode := wpUseRegistry;

 FSpellControler.Active := TRUE;

 FSpellControler.LoadSetup(false);

// UpdateLanguges; - this procedure fills a combobx

end;

 

procedure TForm1.FormDestroy(Sender: TObject);

begin

 FSpellControler.AutoSaveSetup;

 FSpellControler.Free;

end;

 

3) Switch SpellAsYouGo on and off (Spell is a checkbox in this example)

 

procedure TForm1.SpellClick(Sender: TObject);

begin

if Spell.Checked then WPRichText1.StartSpellCheck(wpStartSpellAsYouGo)

else WPRichText1.StartSpellCheck(wpStopSpellAsYouGo);

end;

 

4) Add a configure button or menu item

 

procedure TForm1.ConfigureClick(Sender: TObject);

begin

if FSpellControler.Configure then

begin

  // UpdateLanguges; - if we update a combobox

  if Spell.Checked then

  begin

     WPRichText1.StartSpellCheck(wpStopSpellAsYouGo);

     WPRichText1.StartSpellCheck(wpStartSpellAsYouGo);

  end;

end;

end;

 

alternatively you can also call:

 WPRichText1.StartSpellCheck(wpShowSpellCheckSetup);

 

5) If you want to show a combobox with the available dictionaries

 

// This procedure updates the combobox

procedure TForm1.UpdateLanguges;

var i, j : Integer;

begin

// Checkbox

 Spell.Checked := (FSpellControler.OptionFlags and WPSPELLOPT_SPELLASYOUGO)<>0;

// ComboBox

 SpellLanguages.Items.Clear;

 j := -1;

for i:=0 to FSpellControler.LanguageIDCount-1 do

begin

  if FSpellControler.CurrentLanguage=FSpellControler.LanguageID[i] then

      j := SpellLanguages.Items.Count;

   SpellLanguages.Items.AddObject(FSpellControler.LanguageName[i],

       Pointer(FSpellControler.LanguageID[i]));

end;

 SpellLanguages.ItemIndex := j;

end;

 

//this procedure applies a language change

procedure TForm1.SpellLanguagesChange(Sender: TObject);

begin

  if SpellLanguages.ItemIndex>=0 then

  begin

    FSpellControler.CurrentLanguage :=

    Integer(SpellLanguages.Items.Objects[SpellLanguages.ItemIndex]);

    if Spell.Checked then

    begin

       WPRichText1.StartSpellCheck(wpStopSpellAsYouGo);

       WPRichText1.StartSpellCheck(wpStartSpellAsYouGo);

    end;

  end;

end;

 

The property CurrentLanguage is used to select the current dictionary. You have to use one of the language or language-group IDs which are defined in file WPLanguages.INC

Example:

English General = 9,

English UD= 1033,

English British = 2057,

French = 1036,

German = 1031,

Italian= 1040,

Spanish = 1034