Kontrola pravopisu z kódu Delphi pomocou automatizácie MS Word

click fraud protection

01

07

Čo je to automatizácia (OLE)? Čo je server automatizácie? Čo je klient automatizácie?

Predpokladajme, že vyvíjate podobný editor HTML Sada HTML. Ako každá iná textový editor, vaša aplikácia by mala obsahovať nejaký druh systému kontroly pravopisu. Prečo kupovať komponenty na kontrolu pravopisu alebo ich písať od nuly, keď môžete ľahko používať MS Word?

Automatizácia OLE

jedna aplikácia môže ovládať inú

automatizačný klient

automatizačný server

Automatizácia (tiež známa ako automatizácia OLE) je funkcia, ktorú programy používajú na vystavenie svojich objektov vývojovým nástrojom, makrovým jazykom a iným programom, ktoré podporujú automatizáciu. Program Microsoft Outlook môže napríklad vystavovať objekty na odosielanie a prijímanie e-mailov, na plánovanie a na správu kontaktov a úloh.

Pomocou automatizácie Word (server), môžeme použiť Delphi (klient) na dynamické vytvorenie nového dokumentu, pridať nejaký text, ktorý chceme skontrolovať pravopis, a potom nechať Word skontrolovať pravopis. Ak udržujeme program Microsoft Word minimalizovaný, naši používatelia to nikdy nebudú vedieť! Vďaka rozhraniu OLE aplikácie Microsoft Word sa môžeme vydať na cestu z Delphi a pozrieť sa na spôsoby, ako podvádzať pri vývoji našej verzie editora Poznámkový blok :)

instagram viewer

Je iba jedna chyba;) Používatelia aplikácie musia mať nainštalovaný program Word. Ale nenechajte sa tým zastaviť.

Samozrejme, aby ste úplne zvládli používanie automatizácie vo vašich aplikáciách, musíte mať podrobné pracovné znalosti o aplikáciách, ktoré integrujete - v tomto prípade MS Word.

Aby vaše programy „Office“ fungovali, musí používateľ vlastniť aplikáciu, ktorá funguje ako server automatizácie. V našom prípade musí byť na stroji používateľa nainštalované MS Word.

02

07

Pripojenie k aplikácii Word: „Hello Word“ Early Binding vs. Neskoré viazanie

Existuje niekoľko hlavných krokov a tri hlavné spôsoby automatizácie aplikácie Word z Delphi.

Delphi> = 5 - súčasti servera Office XX

TWordApplication

TWordDocument

Delphi 3,4 - Včasné viazanie

Typy knižníc

Ak chcete použiť knižnicu typov programu Word v Delphi (verzia 3 alebo 4), vyberte Project | Importovať knižnicu typov... a vyberte súbor msword8.olb, ktorý sa nachádza v adresári „Office“ balíka Microsoft Office. Týmto sa vytvorí súbor „Word_TLB.pas“, čo je objektový pascal preklad typu knižnice. zahrnúť Word_TLB v zozname použitia akejkoľvek jednotky, ktorá bude mať prístup k vlastnostiam alebo metódam aplikácie Word. Zavolá sa odkazovanie na metódy Word pomocou knižnice typov skorá väzba.

Delphi 2 - neskoré viazanie

Neskoré viazanie

je potrebné sa vyhnúť, pokiaľ je to možné, pretože používanie knižníc typov je omnoho ľahšie a rýchlejšie - kompilátor pomáha zachytením chýb v zdroji. Pri použití neskorej väzby sa program Word deklaruje ako premenná typu Variant. To predovšetkým znamená, ako volať metódy a prístup k vlastnostiam, musíte vedieť, čo sú.

04

07

Projekt kontroly pravopisu - TWordApplication, TWordDocument

Kúzelný projekt v čase návrhu
Kúzelný projekt v čase návrhu.

Na zostavenie projektu kontroly pravopisu potrebujeme dve formy: jedna použitá na úpravu textu a druhá na zobrazenie návrhov pravopisu... ale poďme od začiatku.

Spustite Delphi. Vytvorte nový projekt s jedným prázdnym formulárom (predvolene form1). Toto bude hlavný formulár pri kontrole pravopisu pomocou projektu MS Word. Pridajte jeden TMemo (Štandardná karta) a dva TButtons do formulára. Pridajte nejaký text k Memo vyplneniu vlastnosti Lines. Samozrejme, s niektorými preklepmi. Vyberte kartu Servery a pridajte ju TWordApplication a TWordDocument do formulára. Zmeňte názov komponentu TWordApplication z WordApplication1 na WordApp, WordDocument1 na WordDoc.

TWordAplikácia, TWordDocument

Publikované vlastníctvo ConnectKind sa používa na kontrolu, či sa pripájame k novo spustenej inštancii programu Word alebo k existujúcej inštancii, ktorá už je spustená. Nastavte ConnectKind na ckRunningInstance.

Keď otvoríme alebo vytvoríme súbor v programe Word, vytvoríme objekt Dokument. Bežnou úlohou pri používaní automatizácie programu Word je určiť oblasť v dokumente a potom s ňou urobiť niečo, ako napríklad vložiť text a skontrolovať pravopis. Objekt, ktorý predstavuje priľahlú oblasť v dokumente, sa nazýva Rozsah.

05

07

Projekt kontroly pravopisu - kontrola / nahradenie pravopisu

Získajte návrhy dopytov v čase návrhu
Získajte návrhy dopytov v čase návrhu.

Zámerom je opakovať text v Memo a analyzovať ho na slová oddelené medzerou. Pre každé slovo voláme MS Word, aby ho skontroloval. Model automatizácie programu Word obsahuje metódu SpellingErrors, ktorá vám umožní skontrolovať pravopis textu obsiahnutého v určitom rozsahu.

Rozsah je definovaný tak, že obsahuje iba slovo, ktoré sa práve analyzovalo. Metóda SpellingErrors vráti zbierku nesprávne napísaných slov. Ak táto zbierka obsahuje viac ako nula slov, pokračujeme ďalej. Volanie na metódu GetSpellingSuggestions, odovzdanie nesprávne napísaného slova, vyplní kolekciu navrhovaných náhradných slov.

Túto kolekciu odovzdáme do formulára Kontrola pravopisu. Toto je druhá forma v našom projekte.

Na pridanie nového formulára do projektu použite File | Nový formulár. Nech má názov „frSpellCheck“. Do tohto formulára pridajte tri komponenty TBitBtn. Dva EditBox-y a jeden ListBox. Všimnite si ďalšie tri štítky. Štítok „Nie je v slovníku“ je „spojený“ s editačným poľom edNID. EdNID jednoducho zobrazí nesprávne napísané slovo. Zoznam lbSuggestions zobrazí zoznam položiek v kolekcii SpellingSuggestions. Vybraný návrh pravopisu sa umiestni do editačného poľa edReplaceWith.

Tri BitButtony sa používajú na zrušenie kontroly pravopisu, Ignorovanie aktuálneho slova a na zmenu chybne napísaného slova v editovacom poli edReplaceWith. Vlastnosť ModalResult komponentov BitBtn sa používa pri odkazovaní na to, čo používateľ klikol. Tlačidlo "Ignorovať" má svoju vlastnosť ModalResult nastavenú na mrIgnore, "Zmeniť" na mrOk a "Zrušiť" na mrAbort.

FrSpellCheck má jednu premennú verejného reťazca nazvanú sReplacedWord. Táto premenná vracia text v edReplaceWith, keď užívateľ stlačí tlačidlo „Zmeniť“.

07

07

Tezaurus? Tezaurus!

Ako bonus má projekt kód, ktorý sa má použiť Slovný tezaurus. Používanie tezauru je jednoduchšie. Text nerozoberáme, pre vybrané slovo sa volá metóda CheckSynonyms. Táto metóda zobrazí svoj vlastný výberový dialóg. Po výbere nového slova sa pôvodné slovo nahradí rozsahom Word Documents Range.

instagram story viewer