Õigekirjakontroll Delphi koodist MS Word Automation abil

01

alates 07

Mis on (OLE) automaatika? Mis on automaatikaserver? Mis on automaatika klient?

Oletame, et arendate HTML-redaktorit nagu HTML-i komplekt. Nagu iga teine ​​tekstiredaktor, peaks ka teie rakendus sisaldama mingit õigekirjakontrollisüsteemi. Miks osta õigekirjakontrolli komponente või kirjutada neid nullist, kui saate hõlpsalt kasutada MS Wordi?

OLE automaatika

üks rakendus saab teist kontrollida

automaatika klient

automaatikaserver

Automaatika (tuntud ka kui OLE automatiseerimine) on funktsioon, mida programmid kasutavad oma objektide paljastamiseks arendustööriistadele, makrokeeltele ja muudele automatiseerimist toetavatele programmidele. Näiteks võib Microsoft Outlook paljastada objekte e-kirjade saatmiseks ja vastuvõtmiseks, ajastamiseks ning kontaktide ja ülesannete haldamiseks.

Word Automationi (server) abil saame Delphi (klient) abil luua dünaamiliselt uue dokumendi, lisada teksti, mida soovime õigekirjakontrolliks, ja lasta Wordil siis kontrollida õigekirja. Kui hoiame Microsoft Wordi minimeeritud, ei pruugi meie kasutajad seda kunagi teada! Tänu Microsoft Wordi OLE-liidesele saame Delphist kõrvalreisi teha ja meie Notepadi redigeerija versiooni väljatöötamisel otsida võimalusi petmiseks :)

instagram viewer

Seal on ainult üks tõrge;) Rakenduse kasutajatel peab olema Word installitud. Kuid ärge laske sellel teid peatada.

Muidugi, et automatiseerimise kasutamist oma rakendustes täielikult omandada, peavad teil olema üksikasjalikud tööalased teadmised integreeritavate rakenduste - antud juhul MS Wordi - kohta.

Teie "Office" programmide töötamiseks peab kasutaja omama rakendust, mis toimib nagu automaatikaserver. Meie puhul tuleb MS Word installida kasutaja arvutisse.

02

alates 07

Ühendamine Wordiga: "Tere sõna" varajane sidumine vs. Hiline köitmine

Wordi Delphist automatiseerimiseks on mitu peamist sammu ja kolm peamist viisi.

Delphi> = 5 - Office XX serveri komponendid

TWordApplication

TWordDocument

Delphi 3,4 - varane sidumine

Sisestage raamatukogud

Wordi tüüpi raamatukogu kasutamiseks Delphis (versioon 3 või 4) valige projekt | Menüü Impordi tüüpkogu... ja valige fail msword8.olb, mis asub Microsoft Office'i kataloogis "Office". Sellega luuakse fail "Word_TLB.pas", mis on tüüpi raamatukogu objekti pascal translation. Kaasa Word_TLB mis tahes üksuse kasutusloendis, mis pääseb juurde Wordi atribuutidele või meetoditele. Kutsutakse Wordi meetodite viitamist tüübiteeki kasutades varane sidumine.

Delphi 2 - hiline köitmine

Hiline sidumine

tuleks võimaluse korral vältida, kuna tüüpi raamatukogude kasutamine on palju lihtsam ja kiirem - kompilaatorist aitab abi leida vigu allikast. Hilise sidumise kasutamisel kuulutatakse Word variatiivi tüüpi muutujaks. See tähendab eriti kui helistada meetoditele ja juurdepääsu atribuutidele, peate teadma, mis need on.

04

alates 07

Õigekirjakontrolli projekt - TWordApplication, TWordDocument

Õigekirja projekt disaini ajal
Õigekirja projekt disaini ajal.

Õigekirjakontrolli projekti ehitamiseks vajame kahte vormi: ühte kasutatakse teksti redigeerimiseks ja teist õigekirjaettepanekute nägemiseks... aga lähme algusest peale.

Alustage Delphit. Looge uus tühja vormiga projekt (vaikimisi vorm1). See on peamine vorm õigekirja kontrollimisel MS Wordi projektiga. Lisage üks TMemo (Tavaline sakk) ja kaks TBnupud vormi juurde. Lisage memole memorandumi tekst, mis täidab atribuudi read. Muidugi, mõningate kirjavigadega. Valige vahekaart Serverid ja lisage TWordApplication ja TWordDocument vormi juurde. Muutke TWordApplication komponendi nimi WordApplication1-st WordApp-iks, WordDocument1-st WordDociks.

TWordApplication, TWordDocument

Avaldatud vara ConnectKind kasutatakse selle kontrollimiseks, kas me ühendame äsja käivitatud Wordi eksemplari või juba töötava olemasoleva eksemplariga. Seadke ConnectKind väärtusele ckRunningInstance.

Kui avame või loome faili Wordis, loome objekti Document. Tavaline ülesanne Wordi automatiseerimisel on dokumendis ala täpsustamine ja seejärel sellega midagi ette võtta, näiteks teksti sisestada ja õigekirja kontrollida. Objekti, mis tähistab dokumendis külgnevat ala, nimetatakse vahemikuks.

05

alates 07

Õigekirjakontrolli projekt - õigekirjakontroll / asendamine

GetSpellingSuggestions disaini ajal
GetSpellingSuggestions disaini ajal.

Idee on lükata memos olev tekst läbi ja parsida see ruumi eraldatud sõnadeks. Iga sõna jaoks kutsume õigekirja kontrollimiseks MS Wordi. Wordi automaatikamudel sisaldab SpellingErrors meetodit, mis võimaldab teil kontrollida mõnes vahemikus sisalduva teksti õigekirja.

Vahemik on määratletud nii, et see sisaldab ainult sõna, mis on lihtsalt sõelutud. SpellingErrors meetod tagastab valesti kirjutatud sõnade kogumi. Kui see kollektsioon sisaldab rohkem kui null sõna, liigume edasi. Kutse GetSpellingSuggestions meetodile, täites valesti kirjutatud sõna, täidab soovitatud asendussõnade SpellingSuggestions kogumi.

Edastame selle kollektsiooni õigekirjakontrolli vormile. See on meie projekti teine ​​vorm.

Uue vormi lisamiseks kasutage faili | Uus vorm. Las sellel on nimi "frSpellCheck". Lisage sellele vormile kolm TBitBtn komponenti. Kaks EditBox-es ja üks ListBox. Pange tähele veel kolme silti. Silt "Ei sõnastikus" on "ühendatud" edNID-i redigeerimise kastiga. EdNID kuvab valesti kirjutatud sõna. Loendikastis lbSuggestions loetletakse üksused SpellingSuggestions kollektsioonis. Valitud õigekirja soovitus paigutatakse redigeerimise kasti edReplaceWith.

Kolme BitButtoni kasutatakse õigekirjakontrolli tühistamiseks, praeguse sõna ignoreerimiseks ja valesti kirjutatud sõna muutmiseks redigeerimisboksi edReplaceWith sõnaga. BitBtn-i komponentide ModalResult atribuuti kasutatakse kasutaja klõpsamisel osutamisel. Nupu "Ignoreerimine" omadus ModalResult on seatud väärtusele mrIgnore, "Muuda" väärtuseks mrOk ja "Tühista" funktsiooniks mrAbort.

FrSpellCheckil on üks avalik stringi muutuja nimega sReplacedWord. See muutuja tagastab teksti rakenduses edReplaceWith, kui kasutaja vajutab nuppu "Muuda".

07

alates 07

Tesaurus? Tesaurus!

Boonusena on projekti kood, mida kasutada Wordi tesaurus. Tesauri kasutamine on üsna lihtsam. Me ei sõeluda teksti, valitud sõna jaoks nimetatakse CheckSynonyms meetodit. See meetod kuvab oma valimisdialoogi. Kui uus sõna on valitud, kasutatakse Wordi dokumentide vahemiku sisu algse sõna asendamiseks.