Preverjanje črkovanja iz kode Delphi z uporabo avtomatizacije MS Word

01

z dne 07

Kaj je (OLE) avtomatizacija? Kaj je strežnik za avtomatizacijo? Kaj je odjemalec avtomatizacije?

Recimo, da razvijate urejevalnik HTML, kot je HTML Kit. Kot vsak drug urejevalnik besedil, mora tudi vaša aplikacija vsebovati nekakšen sistem za preverjanje črkovanja. Zakaj bi kupovali komponente za preverjanje črkovanja ali jih pisali iz nič, ko lahko preprosto uporabljate MS Word?

OLE Avtomatizacija

ena aplikacija lahko nadzoruje drugo

odjemalec za avtomatizacijo

strežnik za avtomatizacijo

Avtomatizacija (znana tudi kot OLE Automation) je funkcija, ki jo programi uporabljajo za izpostavitev svojih predmetov razvojnim orodjem, makro jezikom in drugim programom, ki podpirajo avtomatizacijo. Microsoft Outlook lahko na primer izpostavi predmete za pošiljanje in prejemanje e-pošte, za načrtovanje ter za upravljanje stikov in opravil.

Z uporabo programa Word Automation (strežnik) lahko z Delphi (odjemalec) dinamično ustvarimo nov dokument, dodamo nekaj besedila, ki ga želimo preveriti črkovanje, in nato Word preverimo črkovanje. Če bomo Microsoft Word zmanjšali na minimum, naši uporabniki morda nikoli ne bodo vedeli! Zahvaljujoč vmesniku OLE Microsofta Word se lahko od Delphija odpravimo na pot in si poiščemo načine za varanje pri razvoju naše različice urejevalnika Beležnice :)

instagram viewer

Obstaja le ena težava;) Uporabniki aplikacije morajo imeti nameščen Word. Toda ne dovolite, da vas to ustavi.

Seveda, če želite popolnoma obvladati uporabo avtomatizacije v svojih aplikacijah, morate imeti podrobno delovno znanje o aplikacijah, ki jih integrirate - v tem primeru MS Word.

Da bi lahko vaši programi "Office" delovali, mora biti uporabnik lastnik aplikacije, ki deluje kot strežnik za avtomatizacijo. V našem primeru mora biti MS Word nameščen na uporabnikovem računalniku.

02

z dne 07

Povezava z Wordom: "Hello Word" Zgodnja vezava vs. Pozno vezava

Obstaja več glavnih korakov in trije glavni načini za avtomatizacijo Worda iz Delphija.

Delphi> = 5 - Komponente strežnika Office XX

TWordAplikacija

TWordDocument

Delphi 3,4 - zgodnja vezava

Vnesite knjižnice

Če želite uporabiti Wordovo knjižnico vrst v Delfih (različica 3 ali 4), izberite Project | Uvozi meni Type Library… in izberite datoteko msword8.olb, ki se nahaja v imeniku Office za Microsoft Office. To bo ustvarilo datoteko "Word_TLB.pas", ki je objekt pascal prevod knjižnice vrst. Vključi Word_TLB na seznamu uporab katere koli enote, ki bo dostopala do lastnosti ali metod programa Word. Pokliče se Wordove metode s pomočjo knjižnice vrst zgodnja vezava.

Delphi 2 - Pozno vezava

Pozna vezava

Če je mogoče, se je treba izogibati, saj je veliko lažje in hitreje uporabljati knjižnice vrst - prevajalnik pomaga tako, da napake v izvoru ujame. Pri uporabi pozne vezave je Word razglašen za spremenljivko vrste Variant. To zlasti pomeni, da za klicanje metod in dostop do lastnosti morate vedeti, kaj so.

04

z dne 07

Projekt preverjanja črkovanja - TWordAplikacija, TWordDocument

Projekt črkovanja v času načrtovanja
Projekt črkovanja v času načrtovanja.

Za izdelavo projekta za preverjanje črkovanja bomo potrebovali dva obrazca: eden se uporablja za urejanje besedila, drugi pa za ogled črkovalnih predlogov... ampak, pojdimo od začetka.

Zaženite Delphi. Ustvarite nov projekt z enim praznim obrazcem (privzeto je form1, privzeto). To bo glavni obrazec pri preverjanju črkovanja pri projektu MS Word. Dodajte ga TMemo (Standardni jeziček) in dva Gumbi k obrazcu. Dodajte nekaj besedila v beležko, ki polni lastnost Lines. Seveda, z nekaj napake pri tipkanju. Izberite zavihek Strežniki in dodajte TWordAplikacija in TWordDocument k obrazcu. Spremenite ime komponente TWordApplication iz WordApplication1 v WordApp, WordDocument1 v WordDoc.

TWordAplikacija, TWordDocument

Objavljena lastnina ConnectKind se uporablja za nadzor nad tem, ali se povezujemo na novo zagnani primerek Word ali na obstoječi primerek, ki se že izvaja. Nastavite ConnectKind na ckRunningInstance.

Ko odpremo ali ustvarimo datoteko v Wordu, ustvarimo objekt Document. Pogosta naloga pri uporabi avtomatizacije Worda je določiti območje v dokumentu in nato z njim nekaj narediti, na primer vstaviti besedilo in preveriti črkovanje. Predmet, ki predstavlja sorodno območje v dokumentu, se imenuje domet.

05

z dne 07

Projekt preverjanja črkovanja - preverjanje črkovanja / zamenjava črkovanja

GetSpellingSuggestions v času načrtovanja
GetSpellingSuggestions v času načrtovanja.

Ideja je, da se besedilo v spominskem zapisu prebije skozi besedilo in ga razdeli na besede, omejene s prostorom. Za vsako besedo pokličemo MS Word, da jo črkuje. Wordov model avtomatizacije vsebuje metodo SpellingErrors, ki omogoča preverjanje črkovanja besedila, ki ga vsebuje neko območje.

Doseg je opredeljen tako, da vsebuje samo besedo, ki je bila samo razčlenjena. Metoda SpellingErrors vrne zbirko napačno napisanih besed. Če ta zbirka vsebuje več kot nič besed, se premaknemo naprej. Klic na metodo GetSpellingSuggestions, ki vnese napačno črkovano besedo, napolni zbirko predlaganih nadomestnih besed v SpellingSuggestions.

To zbirko posredujemo obrazcu SpellCheck. To je druga oblika našega projekta.

Če želite dodati nov obrazec projektu, uporabite datoteko | Nov obrazec. Naj ima ime 'frSpellCheck'. Na ta obrazec dodajte tri komponente TBitBtn. Dva EditBox-a in en ListBox. Upoštevajte še tri etikete. Oznaka »Ni v slovarju« je »povezana« z urejevalnim poljem edNID. EdNID preprosto prikaže napačno črkano besedo. V oknu s seznamom lbSuggestions bodo navedeni elementi v zbirki SpellingSuggestions. Izbrani črkovalni predlog je postavljen v urejevalno polje edReplaceWith.

Trije BitButtons se uporabljajo za preklic preverjanja črkovanja, zanemarjanje trenutne besede in spremembo napačno črkovane besede z besedo v urejevalnem polju edReplaceWith. Lastnost ModalResult komponent BitBtn se uporablja, ko se sklicuje na to, kaj je uporabnik kliknil. Gumb "Ignore" ima svojo lastnost ModalResult nastavljeno na mrIgnore, "Change" na mrOk in "Cancel" na mrAbort.

FrSpellCheck ima eno javno spremenljivko nizov, imenovano sReplacedWord. Ta spremenljivka vrne besedilo v edReplaceWith, ko uporabnik pritisne gumb »Spremeni«.

07

z dne 07

Tezavra? Tezavra!

Projekt lahko kot bonus uporabi kodo Wordov tezaver. Uporaba tezavra je precej lažja. Besedila ne razčlenimo, za izbrano besedo se imenuje metoda CheckSynonyms. Ta metoda prikaže lastno izbirno pogovorno okno. Ko je izbrana nova beseda, se za nadomestitev izvirne besede uporablja vsebina programa Word Documents Range.