01
din 07
Ce este automatizarea (OLE)? Ce este Automation Server? Ce este Automation Client?
Să presupunem că dezvolți un editor HTML de genul Kit HTML. La fel ca orice alt editor textual, aplicația dvs. ar trebui să conțină un fel de sistem de verificare ortografică. De ce să cumperi componente de verificare ortografică sau să le scrii de la zero când poți folosi cu ușurință MS Word?
Automatizare OLE
o aplicație poate controla alta
client automatizare
server automatizare
Automatizarea (cunoscută și sub denumirea de OLE Automation) este o caracteristică pe care programele o folosesc pentru a-și expune obiectele la instrumente de dezvoltare, limbaje macro și alte programe care acceptă automatizarea. De exemplu, Microsoft Outlook poate expune obiecte pentru trimiterea și primirea de e-mail, pentru planificare și pentru contact și gestionarea sarcinilor.
Folosind Word Automation (server), putem folosi Delphi (client) pentru a crea în mod dinamic un nou document, pentru a adăuga textul pe care dorim să îl verificăm ortografic și apoi pentru ca Word să verifice ortografia. Dacă menținem Microsoft Word minimizat, utilizatorii noștri nu ar putea ști niciodată! Datorită interfeței OLE Microsoft Word, putem face o călătorie laterală de la Delphi și putem analiza modalitățile de a înșela atunci când dezvoltăm versiunea noastră de editor Notepad :)
Există un singur glitch;) Utilizatorii aplicației trebuie să aibă instalat Word. Dar nu lăsa acest lucru să te oprească.
Desigur, pentru a stăpâni pe deplin utilizarea Automatizării în aplicațiile dvs., trebuie să aveți cunoștințe de lucru detaliate despre aplicațiile pe care le integrați - în acest caz, MS Word.
Pentru ca programele dvs. „Office” să funcționeze, utilizatorul trebuie să dețină aplicația care acționează ca serverul de automatizare. În cazul nostru, MS Word trebuie instalat pe mașina utilizatorului.
02
din 07
Conectarea la Word: „Hello Word” Legare timpurie vs. Legare târzie
Există mai mulți pași principali și trei moduri principale de a automatiza Word de la Delphi.
Delphi> = 5 - Componentele serverului Office XX
TWordApplication
TWordDocument
Delphi 3,4 - Legare timpurie
Tip biblioteci
Pentru a utiliza biblioteca de tip Word în Delphi (versiunea 3 sau 4), selectați Project | Meniul Import Type Library… și alegeți fișierul msword8.olb aflat în directorul „Office” al Microsoft Office. Se va crea fișierul "Word_TLB.pas" care este obiectul de traducere pascală a bibliotecii de tip. Include Word_TLB în lista de utilizări a oricărei unități care va accesa proprietățile sau metodele Word. Referirea metodelor Word folosind biblioteca de tip este apelată legare precoce.
Delphi 2 - Legare târzie
Legare tardivă
ar trebui evitat, dacă este posibil, deoarece este mult mai ușor și mai rapid să utilizați bibliotecile de tip - compilatorul ajută prin surprinderea erorilor din sursă. Când se utilizează legarea târzie, Word este declarat ca o variabilă de tip Variant. Acest lucru înseamnă, în special, decât pentru a apela la metode și a accesa proprietățile, trebuie să știți care sunt.
04
din 07
Proiectul de verificare ortografică - TWordApplication, TWordDocument
Pentru a construi un proiect de verificare ortografică, vom avea nevoie de două formulare: unul folosit pentru editarea textului și celălalt pentru a vedea sugestiile de ortografie... dar, să mergem de la început.
Începeți Delphi. Creați un nou proiect cu un formular gol (formular1, implicit). Aceasta va fi forma principală în verificarea ortografică cu proiectul MS Word. Adauga unu TMemo (Fila Standard) și două TButtons la forma. Adăugați text la Memoarea care completează proprietatea Lines. Desigur, cu unele erori de dactilografiere. Selectați fila Servere și adăugați TWordApplication și TWordDocument la forma. Schimbați numele componentei TWordApplication din WordApplication1 în WordApp, WordDocument1 în WordDoc.
TWordApplication, TWordDocument
Proprietatea publicată ConnectKind este utilizat pentru a controla dacă ne conectăm la o instanță Word lansată recent sau la o instanță existentă care este deja în curs de execuție. Setați ConnectKind la ckRunningInstance.
Când deschidem sau creăm un fișier în Word, creăm un obiect Document. O sarcină comună atunci când utilizați automatizarea Word este să specificați o zonă dintr-un document și apoi să faceți ceva cu acesta, cum ar fi introducerea textului și verificarea ortografică. Un obiect care reprezintă o zonă contiguă într-un document se numește Range.
05
din 07
Proiect de verificare ortografică - Verificare / înlocuire ortografică
Ideea este să parcurgi textul din Memo și să-l analizezi în cuvinte delimitate în spațiu. Pentru fiecare cuvânt, apelăm MS Word pentru a-l verifica ortografic. Modelul Word Automation conține metoda SpellingErrors care vă permite să verificați ortografia textului conținut într-un anumit interval.
Intervalul este definit pentru a conține doar cuvântul analizat. Metoda SpellingErrors returnează o colecție de cuvinte greșite. Dacă această colecție conține mai mult de zero cuvinte, mergem mai departe. Un apel la metoda GetSpellingSuggestions, care trece cu cuvântul corect scris, completează o colecție SpellingSuggestions de cuvinte de înlocuire sugerate.
Trecem această colecție în formularul SpellCheck. Aceasta este a doua formă din proiectul nostru.
Pentru a adăuga un formular nou la un proiect, utilizați File | Nouă formă. Lasă-l să aibă numele „frSpellCheck”. Adăugați trei componente TBitBtn pe acest formular. Două EditBox-es și o ListBox. Rețineți încă trei Etichete. Eticheta „Nu este în dicționar” este „conectată” cu caseta de editare edNID. EdNID afișează pur și simplu cuvântul scris greșit. Caseta de listă lbSuggestions va enumera elementele din colecția SpellingSuggestions. Sugestia de ortografie selectată este plasată în caseta de editare EdReplaceWith.
Cele trei BitButtons sunt utilizate pentru a anula verificarea ortografică, ignorați cuvântul curent și pentru a schimba cuvântul scris greșit cu cel din caseta de edReplaceWith. Componentele BitBtn Proprietatea ModalResult este utilizată atunci când se referă la ceea ce a făcut clic pe utilizator. Butonul "Ignore" are proprietatea ModalResult setată la mrIgnore, "Change" la mrOk și "Cancel" la mrAbort.
FrSpellCheck are o variabilă de șir public numită sReplacedWord. Această variabilă returnează textul în edReplaceWith când utilizatorul apasă butonul "Change".
07
din 07
Tezaur? Tezaur!
Ca bonus proiectul are codul de utilizat Tezaurul lui Word. Utilizarea tezaurului este destul de ușoară. Nu analizăm textul, pentru cuvântul selectat se numește metoda CheckSynonym. Această metodă afișează propriul dialog de selecție. Odată selectat un cuvânt nou, conținutul intervalului de documente Word este utilizat pentru a înlocui cuvântul original.