Provjera pravopisa iz Delphi Code pomoću automatizacije MS Word

01

od 07

Što je (OLE) automatizacija? Što je poslužitelj za automatizaciju? Što je klijent za automatizaciju?

Pretpostavimo da razvijate HTML uređivač poput HTML Kit. Kao i svaki drugi tekstualni uređivač, i vaša aplikacija treba sadržavati nekakav sustav provjere pravopisa. Zašto kupovati komponente za provjeru pravopisa ili ih pisati ispočetka kada jednostavno možete koristiti MS Word?

OLE Automation

jedna aplikacija može kontrolirati drugu

klijent automatizacije

poslužitelj za automatizaciju

Automatizacija (poznata i kao OLE Automation) je značajka koju programi koriste da bi izložili svoje objekte razvojnim alatima, makro jezicima i drugim programima koji podržavaju Automatizaciju. Na primjer, Microsoft Outlook može izložiti predmete za slanje i primanje e-pošte, zakazivanje i upravljanje kontaktima i zadacima.

Korištenjem programa Word Automation (poslužitelj) možemo pomoću Delphija (klijenta) dinamički stvoriti novi dokument, dodati neki tekst koji želimo provjeriti pravopisom, a zatim Word provjeriti pravopis. Ako Microsoft Word svedemo na minimum, naši korisnici možda nikad ne znaju! Zahvaljujući OLE sučelju Microsofta, možemo krenuti iz Delphija i potražiti načine za varanje prilikom razvoja naše verzije uređivača Notepad-a :)

instagram viewer

Postoji samo jedan propust;) Korisnici aplikacije moraju imati instaliran Word. Ali ne dopustite da vas to zaustavi.

Naravno, da biste u potpunosti ovladali upotrebom Automatizacije u svojim aplikacijama, morate imati detaljno radno znanje o programima koje integrirate - u ovom slučaju MS Word.

Kako bi vaši programi "Office" funkcionirali, korisnik mora posjedovati aplikaciju koja djeluje poput poslužitelja automatizacije. U našem slučaju MS Word mora biti instaliran na korisnikov stroj.

02

od 07

Povezivanje s Wordom: "Hello Word" Rano vezivanje vs. Kasno vezivanje

Nekoliko je glavnih koraka i tri glavna načina za automatizaciju Worda iz Delphija.

Delphi> = 5 - Komponente poslužitelja Office XX

TWordApplication

TWordDocument

Delphi 3,4 - rano vezivanje

Upišite knjižnice

Za korištenje Wordove biblioteke vrsta u Delfima (verzija 3 ili 4) odaberite Projekt | Uvezi izbornik Biblioteka… i odaberite datoteku msword8.olb koja se nalazi u Microsoft Officeovom direktoriju "Office". Tako će se stvoriti datoteka "Word_TLB.pas" koja je objektni paskalni prijevod knjižnice vrsta. uključiti Word_TLB na popisu upotreba bilo koje jedinice koja će pristupati Wordovim svojstvima ili metodama. Poziva se Wordova metoda referenciranja pomoću biblioteke vrsta rano vezivanje.

Delphi 2 - kasno vezivanje

Kasno vezivanje

treba izbjegavati, ako je moguće, jer je mnogo lakše i brže koristiti knjižnice tipa - prevodilac pomaže uhvaćanjem pogrešaka u izvoru. Kada koristite kasno uvezivanje, Word se deklarira kao varijabla vrste Variant. To posebno znači da za pozivanje metoda i pristupa svojstvima morate znati što su.

04

od 07

Projekt provjere pravopisa - TWordAplikacija, TWordDocument

Projekt pravopisa u vrijeme dizajna
Projekt pravopisa u vrijeme dizajna.

Za izradu projekta provjere pravopisa trebat će nam dva obrasca: jedan se koristi za uređivanje teksta, a drugi za pregled prijedloga pravopisa... ali, krenimo od početka.

Pokrenite Delphi. Stvorite novi projekt s jednim praznim obrascem (tvornički 1, zadano). Ovo će biti glavni obrazac za provjeru pravopisa s programom MS Word. Dodajte jedan TMemo (Standardna kartica) i dvije TButtons do forme. Dodajte tekst u napomenu koja ispunjava svojstvo Lines. Naravno, s nekim pogreškama pri kucanju. Odaberite karticu Poslužitelji i dodajte TWordApplication i TWordDocument do forme. Promijenite naziv komponente TWordApplication iz WordApplication1 u WordApp, WordDocument1 u WordDoc.

TWordAplikacija, TWordDocument

Objavljeno vlasništvo ConnectKind koristi se za kontrolu da li se povezujemo s novo pokrenutim instancama Word ili s postojećom instancom koja se već izvodi. Postavite ConnectKind na ckRunningInstance.

Kada u programu Word otvorimo ili stvorimo datoteku, stvaramo objekt Document. Čest zadatak prilikom korištenja automatizacije Worda je odrediti područje u dokumentu, a zatim nešto učiniti s njim, primjerice, umetnuti tekst i provjeriti pravopis. Predmet koji u dokumentu predstavlja susjedno područje naziva se domet.

05

od 07

Projekt provjere pravopisa - provjera pravopisa / zamjena

GetSpellingSuggestions u vrijeme dizajna
GetSpellingSuggestions u vrijeme dizajna.

Ideja je prelistati tekst u memorandumu i rastaviti ga na riječi ograničene prostorom. Za svaku riječ zovemo MS Word kako bismo je provjerili u pravopisu. Wordov automatizacijski model sadrži metodu SpellingErrors koja vam omogućuje provjeru pravopisa teksta koji se nalazi u nekom rasponu.

Opseg je definiran da sadrži samo riječ koja je samo raščlanjena. Metoda SpellingErrors vraća zbirku pogrešno napisanih riječi. Ako ova zbirka sadrži više od nula riječi, idemo dalje. Poziv na metodu GetSpellingSuggestions, unošenjem pogrešno napisane riječi, ispunjava SpellingSuggestions zbirku predloženih zamjenskih riječi.

Ovu kolekciju prosljeđujemo u SpellCheck obrazac. To je drugi oblik u našem projektu.

Za dodavanje novog obrasca projektu koristite File | Novi obrazac. Neka ima ime 'frSpellCheck'. Na ovaj obrazac dodajte tri komponente TBitBtn. Dva EditBox-ova i jedan ListBox. Primjetite još tri naljepnice. Oznaka "Nije u rječniku" povezana je s okvirom za uređivanje edNID. EdNID jednostavno prikazuje pogrešno napisanu riječ. Okvir popisa lbSuggestions popisat će stavke u zbirci SpellingSuggestions. Odabrani pravopisni prijedlog nalazi se u okviru za uređivanje edReplaceWith.

Tri BitButton koriste se za poništavanje provjere pravopisa, zanemari trenutnu riječ i za promjenu pogrešno napisane riječi s onom u uređivanju okvira edReplaceWith. Svojstvo ModBResult komponente BitBtn koristi se kada se odnosi na ono što je korisnik kliknuo. Gumb "Ignore" ima svojstvo ModalResult postavljeno na mrIgnore, "Change" na mrOk i "Cancel" na mrAbort.

FrSpellCheck ima jednu javnu varijablu niza nazvanu sReplacedWord. Ova varijabla vraća tekst u edReplaceWith kad korisnik pritisne gumb "Promijeni".

07

od 07

Tezaurus? Tezaurus!

Kao bonus projekt ima kôd koji treba koristiti Wordov tezaur. Korištenje tezaura je prilično lakše. Ne raščlanjujemo tekst, za odabranu riječ se zove metoda CheckSynonyms. Ova metoda prikazuje svoj vlastiti dijaloški okvir za odabir. Jednom kada je odabrana nova riječ, sadržaj Word Documents Range koristi se za zamjenu izvorne riječi.

instagram story viewer