Cum să știu dacă există încă un obiect oleic sau cineva care deja a făcut-o

De unde știți dacă OLE este încă în viață - un obiect sau cineva deja a bătut-o?

Toată ziua.
De unde știți dacă OLE este încă în viață - un obiect sau cineva deja a bătut-o?
Un exemplu este acesta:
creat






MSWord: varianta;
.
MSWord: = CreateOleObject ("Word.Application");
.

Există o necesitate de a învăța: obiectul creat CreateOleObject mai există sau utilizatorul deja a închis-o?

Într-adevăr nimeni nu știe?

dacă VarIsEmpty (MSWord) atunci
Cred că da

Am încercat așa. Aceasta funcționează dacă obiectul nu a fost încă creat. Și dacă a fost creat și distrus, atunci nu trece :-(.







Și pentru a aborda orice proprietate sau o metodă care este garantată să funcționeze dacă obiectul este viu și să prindeți o excepție? Se pare că am făcut-o odată.

Așa că am încercat și eu. Dacă obiectul este ucis, atunci dintr-un motiv oarecare Excepție în încercare
.
cu excepția
.
se încheie;

Și dacă volumul a fost ucis, atunci unele acțiuni între încercați, cu excepția cazului în care sunt executate în mod normal.
Cine a făcut-o dacă obiectul a fost ucis?

Nu prea înțelegi.
exemplu:
încerca
tmp: = MSWord.Selection.Start; // Dacă obiectul este încă în viață, acesta funcționează fără eroare, dacă nu, atunci ar trebui să apară OleError.
El apare. Este adevărat că, în loc să treci controlul la secțiunea excepțională, apare un mesaj de eroare.
cu excepția
.
se încheie;

Voi aduce o felie din fișierul wordauto.pas, care face parte din Dolphi ca exemplu.
În această procedură, un cuvânt - un obiect este creat și verificat verbal - nu a lovit-o cineva. În general, executați exemplul word8auto.dpr și va deveni clar pentru dvs.

procedura TForm1.NewDocButtonClick (expeditor: TObject);
începe
Încercați
# 032; # 032; WordObject.NewDoc ("");
# 032; cu excepția
# 032; ShowMessage ("Se pare că cineva a fost ucis de Word și nu mi-a spus despre asta");
# 032; # 032; dacă este asignat (WordObject), atunci începe
# 032; # 032; # 032; LaunchButton.Enabled: = Adevărat;
# 032; # 032; # 032; CloseButton.Enabled: = False;
# 032; # 032; # 032; NewDocButton.Enabled: = False;
# 032; # 032; # 032; TypeTextButton.Enabled: = False;
# 032; # 032; # 032; WordObject.Free;
# 032; # 032; # 032; WordObject: = zero;
# 032; # 032; sfârșit;
# 032; sfârșit;
se încheie;


WordObject. TWordObject;
Aceasta este pentru TWordObject. Și pentru OLE?

Memorie: 0,73 MB
Durată: 0,033 secunde







Articole similare

Trimiteți-le prietenilor: