Pareizrakstības pārbaude no Delphi koda, izmantojot MS Word Automation

01

no 07

Kas ir (OLE) automatizācija? Kas ir automatizācijas serveris? Kas ir automatizācijas klients?

Pieņemsim, ka jūs izstrādājat tādu HTML redaktoru kā HTML komplekts. Tāpat kā jebkuram citam teksta redaktoram, arī jūsu lietojumprogrammai vajadzētu būt sava veida pareizrakstības pārbaudes sistēmai. Kāpēc pirkt pareizrakstības pārbaudes komponentus vai rakstīt tos no nulles, kad jūs viegli varat izmantot MS Word?

OLE automatizācija

viena programma var kontrolēt citu

automatizācijas klients

automatizācijas serveris

Automatizācija (pazīstama arī kā OLE automatizācija) ir funkcija, kuru programmas izmanto, lai pakļautu savus objektus izstrādes rīkiem, makro valodām un citām programmām, kas atbalsta automatizāciju. Piemēram, Microsoft Outlook var pakļaut objektus e-pasta sūtīšanai un saņemšanai, plānošanai, kā arī kontaktu un uzdevumu pārvaldībai.

Izmantojot Word Automation (serveris), mēs varam izmantot Delphi (klients), lai dinamiski izveidotu jaunu dokumentu, pievienotu tekstu, kuru vēlamies pārbaudīt pareizrakstības pārbaudē, un pēc tam liktu Word pārbaudīt pareizrakstību. Ja Microsoft Word tiks samazināts līdz minimumam, iespējams, ka mūsu lietotāji to nekad neuzzinās! Pateicoties Microsoft Word OLE saskarnei, mēs varam aizbraukt no Delphi un meklēt veidus, kā apkrāpt, izstrādājot mūsu Notepad redaktora versiju :)

instagram viewer

Ir tikai viens traucējums;) Lietojumprogrammas lietotājiem ir jābūt instalētam Word. Bet neļaujiet tam tevi apturēt.

Protams, lai pilnībā apgūtu automatizācijas izmantošanu savās lietojumprogrammās, jums ir jābūt detalizētām darba zināšanām par integrējamām lietojumprogrammām - šajā gadījumā MS Word.

Lai jūsu "Office" programmas darbotos, lietotājam ir jāpieder lietojumprogrammai, kas darbojas kā automatizācijas serveris. Mūsu gadījumā MS Word ir jābūt instalētai lietotāja mašīnā.

02

no 07

Savienojuma izveide ar Word: “Hello Word” agrīna iesiešana vs. Vēla iesiešana

Ir vairāki galvenie soļi un trīs galvenie veidi, kā automatizēt Word no Delphi.

Delphi> = 5 - Office XX servera komponenti

TWordApplication

TWordDocument

Delphi 3,4 - agrīna iesiešana

Ierakstiet bibliotēkas

Lai Delfā izmantotu Word tipa bibliotēku (3. vai 4. versija), atlasiet Projekts | Izvēlne Import Type Library… un izvēlieties failu msword8.olb, kas atrodas Microsoft Office direktorijā Office. Tādējādi tiks izveidots fails "Word_TLB.pas", kas ir tipa bibliotēkas objekta paskālais tulkojums. Iekļaut Word_TLB jebkuras vienības lietojumu sarakstā, kura piekļūs Word īpašībām vai metodēm. Tiek izsauktas atsauces uz Word metodēm, izmantojot tipa bibliotēku agrīna iesiešana.

Delphi 2 - vēlīna iesiešana

Vēla iesiešana

ja iespējams, ir jāizvairās, jo tipa bibliotēku lietošana ir daudz vienkāršāka un ātrāka - kompilators palīdz, noķerot kļūdas avotā. Izmantojot novēlotu iesiešanu, tiek pasludināts, ka Word ir mainīgā lieluma tips. Tas jo īpaši nozīmē, nevis kā piezvanīt metodēm un piekļūt īpašumiem, jums jāzina, kas tie ir.

04

no 07

Pareizrakstības pārbaudes projekts - TWordApplication, TWordDocument

Pareizrakstības projekts dizaina laikā
Pareizrakstības projekts dizaina laikā.

Lai izveidotu pareizrakstības pārbaudes projektu, mums būs vajadzīgas divas formas: vienu izmantoja teksta rediģēšanai un otru, lai redzētu pareizrakstības ieteikumus... bet, iesim no sākuma.

Sāciet Delfi. Izveidojiet jaunu projektu ar vienu tukšu formu (forma1 pēc noklusējuma). Šī būs galvenā forma pareizrakstības pārbaudē ar MS Word projektu. Pievienojiet vienu TMemo (Cilne Standarta) un divi TB pogas uz formu. Pievienojiet tekstu memo, aizpildot īpašumu Lines. Protams, ar dažām drukas kļūdām. Atlasiet cilni Serveri un pievienojiet TWordApplication un TWordDocument uz formu. Mainiet TWordApplication komponenta nosaukumu no WordApplication1 uz WordApp, WordDocument1 uz WordDoc.

TWordApplication, TWordDocument

Publicētais īpašums ConnectKind tiek izmantots, lai kontrolētu, vai mēs izveidojam savienojumu ar nesen palaistu Word gadījumu vai ar jau esošu instanci. Iestatiet ConnectKind uz ckRunningInstance.

Atverot vai izveidojot failu Word, mēs izveidojam dokumentu Document. Bieži sastopams uzdevums, automatizējot Word, ir norādīt apgabalu dokumentā un pēc tam kaut ko ar to darīt, piemēram, ievietot tekstu un pārbaudīt pareizrakstību. Objektu, kas dokumentā attēlo blakus esošo zonu, sauc par diapazonu.

05

no 07

Pareizrakstības pārbaudes projekts - pareizrakstības pārbaude / aizstāšana

GetSpellingSuggestions projektēšanas laikā
GetSpellingSuggestions projektēšanas laikā.

Ideja ir izsvītrot tekstu piezīmē un parsēt to kosmosā atdalītos vārdos. Katram vārdam mēs izsaucam MS Word, lai to pareizi pārbaudītu. Word automatizācijas modelī ir iekļauta SpellingErrors metode, kas ļauj pārbaudīt dažos diapazonos esošā teksta pareizrakstību.

Diapazons ir definēts tā, lai tajā būtu tikai tikko parsēts vārds. Pareizrakstības kļūdu metode atgriež nepareizi uzrakstītu vārdu kolekciju. Ja šajā kolekcijā ir vairāk nekā nulle vārdu, mēs virzāmies tālāk. Zvans uz metodi GetSpellingSuggestions, ievadot nepareizi uzrakstītu vārdu, aizpilda ieteikto aizstājējvārdu SpellingSuggestions kolekciju.

Mēs nododam šo kolekciju SpellCheck veidlapai. Tā ir otrā forma mūsu projektā.

Lai projektam pievienotu jaunu formu, izmantojiet File | Jauna forma. Lai tam būtu nosaukums “frSpellCheck”. Šajā veidlapā pievienojiet trīs TBitBtn komponentus. Divi EditBox-es un viens ListBox. Ņemiet vērā vēl trīs etiķetes. Apzīmējums “Nav vārdnīcā” ir “savienots” ar edNID rediģēšanas lodziņu. EdNID vienkārši parāda nepareizi uzrakstītu vārdu. Saraksta lodziņā lbSuggestions tiks parādīti vienumi SpellingSuggestions kolekcijā. Atlasītais pareizrakstības ieteikums tiek ievietots rediģēšanas lodziņā edReplaceWith.

Trīs BitButtons tiek izmantoti, lai atceltu pareizrakstības pārbaudi, ignorētu pašreizējo vārdu un lai mainītu kļūdaini uzrakstītu vārdu ar vārdu rediģēšanas lodziņā edReplaceWith. Īpašums BitBtn ModalResult tiek izmantots, atsaucoties uz to, uz kuru lietotājs ir noklikšķinājis. Pogas "Ignorēt" īpašībai ModalResult ir iestatīta vērtība mrIgnore, "Mainīt" uz mrOk un "Atcelt" uz mrAbort.

FrSpellCheck ir viens publiskais virknes mainīgais ar nosaukumu sReplacedWord. Šis mainīgais atgriež tekstu edReplaceWith, kad lietotājs nospiež pogu “Mainīt”.

07

no 07

Tēzaurs? Tezaurs!

Kā prēmija projektam ir kods, kas jāizmanto Vārda tēzaurs. Izmantojot tezauru, ir diezgan vieglāk. Mēs neveicam teksta parsēšanu, jo izvēlētajam vārdam tiek saukta metode CheckSynonyms. Šī metode parāda savu izvēles dialogu. Kad ir izvēlēts jauns vārds, sākotnējā vārda aizstāšanai tiek izmantots Word dokumentu diapazona saturs.