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 :)
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
Õ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
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.