|
|
Helyesírás ellenőrzés saját alkalmazásunkban
|
|
Példaprogram letöltése
12976 bájt
|
Mellékelt példában egy olyan komponenst készítünk, mely segítségével egy tetszőleges szöveg helyesírását ellenőrizhetjük le. Az ellenőrzéshez a Word helyesírás ellenőrzőjét használjuk fel úgy, hogy a felhasználó számára a Word láthatatlan marad. Ha az adott szövegben egy-egy szó hibásnak bizonyul, akkor kapunk egy listát azokról a szavakról, hogy a Word mit ajánl helyette. Ekkor felhasználói beavatkozás mellett kicserélhetjük a hibás szót egy jóra.
A mellékelt példaprogram megnyitása előtt a SpellChecker.pas-ban lévő komponenst telepítenie kell a Delphi alá.
Mivel a komponens a Word helyesírás ellenőrzőjét használja, így nem árt, ha az adott gépre telepítve van a Word a magyar nyelvű helyesírás ellenőrzővel együtt.
A komponens használatához az Execute függvényt kell meghívnunk. Paraméterként adjuk át azt a sztringet, melynek a helyesírás ellenőrzését el kell végezni. A függvény visszatérési értéke ez a paraméterként kapott sztring lesz, viszont ha volt benne hiba és az javításra került, akkor már ezt a javított verziót kapjuk vissza.
Amikor hibás szót talál a komponens a szövegben, akkor jön létre az OnError esemény. Az eseménykezelő eljárásban kapunk egy Word nevű paramétert, melyben a hibás szó található. A Replace nevű paraméterben pedig megadhatjuk azt a sztringet, amelyre ezt a hibás szót kicserélhetjük. Ebben segítségünkre lehet a komponens Suggestions property-e, mely TStringList típusú. Az OnError futása alatt ebben a property-ben az aktuális hibás szóhoz tartozó helyes szavak listája található.
Nézzük most a komponens megvalósítását. Első lépésként a konstruktornál létrehozunk egy Word objektumot.
constructor TSpellChecker.Create(AOwner: TComponent);
begin
inherited;
FSuggestions:=TStringList.Create;
try
FWordApplication:=CreateOleObject('Word.Application');
FWordApplication.Documents.Add;
FOk:=true;
except
FOk:=false;
end;
end;
Amikor az Execute kerül meghívásra, akkor egy ciklussal karakterenként végignézzük a paraméterében kapott sztringet. Amikor a cikluson belül eljutunk egy szó végéig, akkor kerül sor az adott szó helyesírásának ellenőrzésére. Ehhez a CheckWord belső függvényt hívjuk meg, paraméterként átadva az ellenőrizendő szót. Visszatérési értékként igaz értéket kapunk, ha a szó helyesen van leírva. Ebben az esetben ezt a szót is hozzáadjuk az Execute visszatérési értékéhez, mely majdan a teljes leellenőrzött szöveget fogja tartalmazni. Ha a CheckWord hamis értékkel tér vissza, akkor hozzuk létre az OnError eseményt. Itt a replace nevű paraméterbe kapjuk vissza azt a szót, melyre cserélnünk kell a hibásat. Ha ennek értéke viszont null sztring, akkor a felhasználó elutasította a cserét, így az eredményhez a Word által hibásnak ítélt szót adjuk hozzá a végeredményhez.
Nézzük mi is történik a CheckWord függvényben. Első lépésként törüljük a Suggestions property tartalmát, mivel itt az előző hibás szó cseréjére felkínált szavak lehetnek. Ezek után felhasználva a létrehozott kapcsolatot a Word-el, meghívjuk annak CheckSpelling nevű függvényét átadva neki a paraméterként kapott szót ellenőrzésre. Ha hamis értéket kapunk, akkor a szó hibás. Ebben az esetben a GetSpellingSuggestions függvénnyel lekérjük, hogy mit javasol a hibás szó helyett a Word. Ehhez egy SpellingSuggestions típusú objektumot kapunk. Ennek Count property-éből tudhatjuk meg, hogy hány javasolt szót ajánl a Word. Egy ciklus segítségével feltöltjük a Suggestions property-nket úgy, hogy az egyes javaslatokat a SpellingSuggestions osztály Item függvényével lekérdezzük.
function TSpellChecker.CheckWord(s: string): boolean;
var
i: integer;
begin
FSuggestions.Clear;
result:=FWordApplication.CheckSpelling(s);
if not result then begin
FSpellingSuggestions:=FWordApplication.
GetSpellingSuggestions(s);
for i:=1 to FSpellingSuggestions.Count do begin
FSuggestions.Add(FSpellingSuggestions.Item(i));
end;
end;
end;
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2001 évkönyv 143. oldal
Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!
|