01
iš 07
Kas yra (OLE) automatika? Kas yra automatikos serveris? Kas yra automatikos klientas?
Tarkime, kad kuriate HTML redaktorių, pvz HTML rinkinys. Kaip ir bet kuriame teksto redaktoriuje, jūsų programoje turėtų būti tam tikra rašybos tikrinimo sistema. Kodėl verta pirkti rašybos tikrinimo komponentus arba rašyti juos nuo nulio, kai nesunkiai naudojate MS Word?
OLE automatika
viena programa gali valdyti kitą
automatikos klientas
automatikos serveris
Automatizavimas (dar žinomas kaip OLE automatika) yra funkcija, kurią programos naudoja savo objektams atskleisti kūrimo įrankiams, makro kalboms ir kitoms programoms, palaikančioms automatiką. Pvz., „Microsoft Outlook“ gali atskleisti objektus, skirtus el. Laiškų siuntimui ir gavimui, planavimui, kontaktų ir užduočių valdymui.
Naudodami „Word Automation“ (serverį), galime naudoti „Delphi“ (klientas), norėdami dinamiškai sukurti naują dokumentą, pridėti teksto, kurį norime patikrinti rašybą, ir tada „Word“ patikrinti rašybą. Jei sumažinsime „Microsoft Word“ iki minimumo, mūsų vartotojai niekada negali žinoti! „Microsoft Word“ OLE sąsajos dėka galime leistis į kelionę iš „Delphi“ ir ieškoti būdų, kaip apgauti kuriant mūsų „Notepad“ redaktoriaus versiją :)
Yra tik vienas trūkumas;) Programos vartotojams reikia turėti „Word“. Bet neleisk, kad tai tave sustabdytų.
Žinoma, kad galėtumėte visiškai įsisavinti automatikos naudojimą savo programose, turite turėti išsamių darbo žinių apie integruojamas programas - šiuo atveju „MS Word“.
Kad jūsų „Office“ programos veiktų, vartotojas turi turėti programą, kuri veikia kaip automatikos serveris. Mūsų atveju MS Word turi būti įdiegta vartotojo kompiuteryje.
02
iš 07
Prisijungimas prie „Word“: „Sveikas žodis“ Ankstyvas įrišimas vs. Vėlyvas įrišimas
Yra keli pagrindiniai žingsniai ir trys pagrindiniai būdai automatizuoti „Word“ iš „Delphi“.
„Delphi“ = = 5 - „Office XX“ serverio komponentai
„TWordApplication“
„TWordDocument“
„Delphi 3,4“ - ankstyvas įrišimas
Įveskite bibliotekas
Jei norite naudoti „Word“ tipo biblioteką „Delphi“ (3 arba 4 versija), pasirinkite „Project |“ Meniu Importuoti bibliotekos tipą... ir pasirinkite failą „msword8.olb“, esantį „Microsoft Office“ aplanke „Office“. Tai sukurs failą „Word_TLB.pas“, kuris yra tipo bibliotekos objekto pascal vertimas. Įtraukite „Word_TLB“ bet kurio vieneto, kuris turės prieigą prie „Word“ ypatybių ar metodų, panaudojimo sąraše. Vadinami „Word“ metodai, naudojant tipo biblioteką ankstyvas įrišimas.
„Delphi 2“ - vėlyvas įrišimas
Pavėluotas įrišimas
reikėtų vengti, jei įmanoma, nes daug paprasčiau ir greičiau naudoti tipo bibliotekas - kompiliatorius padeda sugaunant šaltinio klaidas. Kai naudojamas vėlyvas įrišimas, skelbiama, kad „Word“ yra kintamojo tipo. Visų pirma tai reiškia, kad nereikia skambinti metodais ir pasiekti ypatybes, todėl turite žinoti, kokie jie yra.
04
iš 07
Rašybos tikrinimo projektas - „TWordApplication“, „TWordDocument“

Norėdami sukurti rašybos tikrinimo projektą, mums reikės dviejų formų: viena naudojama tekstui redaguoti, kita - norint pamatyti rašybos pasiūlymus... bet, eikime iš pradžių.
Pradėk Delphi. Sukurkite naują projektą su viena tuščia forma (1 forma, pagal numatytuosius nustatymus). Tai bus pagrindinė rašybos tikrinimo naudojant MS Word projektą forma. Pridėkite vieną TMemo (Standartinis skirtukas) ir du TB mygtukai į formą. Pridėkite šiek tiek teksto prie memo, užpildydami ypatybę Linijos. Žinoma, su tam tikromis rašybos klaidomis. Pasirinkite skirtuką Serveriai ir pridėkite „TWordApplication“ ir „TWordDocument“ į formą. Pakeiskite „TWordApplication“ komponento pavadinimą iš „WordApplication1“ į „WordApp“, „WordDocument1“ į „WordDoc“.
„TWordApplication“, „TWordDocument“
Paskelbtas turtas „ConnectKind“ naudojamas valdyti, ar prisijungiame prie naujai paleisto „Word“ egzemplioriaus, ar prie jau veikiančio egzemplioriaus. Nustatykite „ConnectKind“ į „ckRunningInstance“.
Kai atidarome ar sukuriame failą „Word“, mes sukuriame „Document“ objektą. Įprasta užduotis, kai naudojama automatizuoti „Word“, yra dokumento sritis nurodyti ir tada su ja ką nors padaryti, pavyzdžiui, įterpti tekstą ir patikrinti rašybą. Objektas, kuris dokumente žymi gretimą sritį, vadinamas diapazonu.
05
iš 07
Rašybos tikrinimo projektas - rašybos tikrinimas / pakeitimas

Idėja yra perbraukti atmintyje esantį tekstą ir suskaidyti jį į tarpais atskirtus žodžius. Kiekvienam žodžiui mes vadiname „MS Word“, kad patikrintume rašybą. „Word“ automatizavimo modelyje yra „SpellingErrors“ metodas, leidžiantis patikrinti teksto, rašomo kai kuriuose diapazonuose, rašybą.
Diapazonas yra apibrėžtas taip, kad jame būtų tik ką tik išnagrinėtas žodis. „SpellingErrors“ metodas grąžina klaidingai parašytų žodžių kolekciją. Jei šioje kolekcijoje yra daugiau nei nulis žodžių, judame toliau. Kreipimasis į „GetSpellingSuggestions“ metodą, nurodžius neteisingai parašytą žodį, užpildo „SpellingSuggestions“ siūlomų pakaitinių žodžių kolekciją.
Mes perduodame šią kolekciją į „SpellCheck“ formą. Tai yra antroji forma mūsų projekte.
Norėdami pridėti naują formą prie projekto, naudokite Failas | Nauja forma. Tegul jis turi pavadinimą „frSpellCheck“. Šioje formoje pridėkite tris „TBitBtn“ komponentus. Du „EditBox-es“ ir vienas „ListBox“. Atkreipkite dėmesį į dar tris etiketes. Etiketė „ne žodyne“ yra „sujungta“ su edNID redagavimo laukeliu. EdNID paprasčiausiai rodo neteisingai parašytą žodį. „LbSuggestions“ sąrašo lauke bus pateikiami „SpellingSuggestions“ kolekcijos elementai. Pasirinktas rašybos pasiūlymas dedamas į redagavimo laukelį „edReplaceWith“.
Trys „BitButton“ mygtukai naudojami rašybos tikrinimui atšaukti, nepaisyti dabartinio žodžio ir pakeisti klaidingai parašytą žodį taisomaisiais „edReplaceWith“ lange. „BitBtn“ komponentų „ModalResult“ nuosavybė naudojama nurodant tai, ką vartotojas spustelėjo. Mygtuko „Ignoruoti“ savybė „ModalResult“ nustatyta kaip „mrIgnore“, „Keisti“ į „mrOk“ ir „Atšaukti“ - į „mrAbort“.
„FrSpellCheck“ turi vieną viešą eilutės kintamąjį, vadinamą „sReplacedWord“. Šis kintamasis grąžina tekstą „edReplaceWith“, kai vartotojas paspaudžia mygtuką „Keisti“.
07
iš 07
Tezauras? Tezauras!

Kaip premiją projektas turi naudoti kodą Žodžio tezauras. Naudoti tezaurą yra gana lengviau. Neautomatizuojame teksto, pasirinktam žodžiui vadinamas „CheckSynonyms“ metodas. Šis metodas rodo savo pasirinkimo dialogą. Pasirinkus naują žodį, „Word“ dokumentų diapazono turinys naudojamas originaliam žodžiui pakeisti.