Delphi lume - Delphi și ole automatizare cu cuvânt

La început era Cuvântul, iar Cuvântul era de 1,0.

Automatizarea permite unei aplicații să gestioneze o altă aplicație. O aplicație gestionată este denumită server de automatizare (în acest caz, Word). Aplicația care gestionează serverul este denumită manager de automatizare.







Există două modalități de a avea acces la serverele de automatizare:

Legarea ulterioară (Interfața IDispatch)

Atunci când se utilizează această metodă, numele funcțiilor și tipurile de parametri sunt rezolvate în timpul execuției programului, toți parametrii sunt definiți de un tip de variantă.

Deoarece la momentul compilării este imposibil să se determine corespondența dintre numele funcțiilor și tipurile de parametri, această metodă este plină de erori.

Deoarece numele funcțiilor și tipurile de parametri trebuie să fie verificate în timpul rulării, această metodă este lentă.

Singurul avantaj al acestei metode la programarea în Delphi este că nu este nevoie să transferați toți parametrii funcției chemate.

Legarea timpurie (folosind o bibliotecă de tip / interfețe)

Când se utilizează această metodă, numele funcțiilor și tipurile de parametri sunt rezolvate pe deplin la timpul de compilare.

Biblioteca de tip trebuie importată în Delphi. Biblioteca de tip este o descriere neutră din punct de vedere lingvistic a tuturor obiectelor și funcțiilor suportate de server. (Acesta este similar cu fișierul antet C).

La apelarea unei funcții, toți parametrii trebuie să fie prezenți, chiar și cei specificați în documentație ca opțional (opțional). Acest lucru vă permite să detectați și să remediați multe bug-uri înainte de începerea programului.







Viteza de execuție este mult mai rapidă decât utilizarea legării târzii.

Datorită avantajelor celei de-a doua metode, restul documentului demonstrează principiile de creare a aplicațiilor cu legare timpurie. Toate aplicațiile care utilizează automatizarea Excel ar trebui să utilizeze cea mai recentă metodă, dacă nu există niciun motiv pentru prima.

Pregătiți o bibliotecă de tip.

Modulul Pascal trebuie să fie creat pe baza fișierului bibliotecii de tip.

  • Selectați elementul de meniu Proiect | Introducere bibliotecă de tip
  • Faceți clic pe butonul Adăugați și selectați următorul fișier
  • c: \ fișiere de programe \ microsoft office \ office \ msword8.olb
  • Faceți clic pe OK.

Din păcate, modulul cu proiectul, evident, nu compilează, deși și este inclus în ea, probabil datorită faptului că cererea consideră modulul ceva ca o aplicație de text.

Cea mai ușoară cale este să eliminați modulul excel_tlb din proiect și să îl adăugați apoi în lista modulelor utilizate.

Fișierul de referință c: \ fișierele programului \ microsoft office \ office \ vbawrd8.hlp conține informații despre obiectele Word disponibile.

"Recorder" vă permite să creați rapid codul VBA. După aceea, poate fi ușor portat la Delphi.

Următorul exemplu folosește clasa Delphi wrapper, încapsulând apelurile directe în obiecte Word. Iată avantajul acestei metode:

  • Oferind opțiuni de ascundere. Abilitatea de a utiliza setările implicite pentru mai multe metode. Multe metode Word lucrează, de asemenea, cu parametrii varianți. Aceasta înseamnă imposibilitatea utilizării constantelor - parametrii ascunși rezolvă această problemă.
  • Asigurați verificarea tipului. Multe metode sunt definite cu parametrii OLEVariant, oferind compatibilitate externă.
  • Următoarea clasă de wrapper demonstrează metodele cheie pentru automatizarea Word. Clasa completă este dată în apendicele 1.

Pentru a crea o clasă:

Adăugați modulul de bibliotecă de tip în lista de module utilizate.







Articole similare

Trimiteți-le prietenilor: