Einzelnen Beitrag anzeigen

ASM

Registriert seit: 15. Aug 2004
165 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: Word OLE -> Kopfzeile Textmarke

  Alt 21. Jul 2011, 17:41
Hiermit sollte es aber gehen:
Da sind aber noch 2 nicht unbedeutende Fehler im Code:

Zum einen, da Winword im Hintergrund geladen wird, also ohne offen sichtbar zu sein, muss es am Ende des aufrufenden Codes geschlossen werden mit
Code:
msword.Quit;
Sonst bleibt das Winword ohne sichtbares Fenster als Prozess im Speicher und wird bei jedem Neuaufruf mit einer zusätzlichen Programmkopie in den Speicher geladen.

Zum zweiten: das Oleobject (also msword) kann nicht mittels Free freigegeben werden, sondern es muss unbedingt verwendet werden:
Code:
msword := UnAssigned;

Ausserdem sollte das aus bekanntem Grund unbedingt korrekt gekapselt werden:
Code:
  try
    msword:=CreateOleObject('WORD.APPLICATION');
  except
    showmessage('Word kann nicht gestartet werden!');
    exit;
  end;
  try
   {.. übriger Code ..}
  finally
    msword.Quit;
    msword := UnAssigned;
  end;
  Mit Zitat antworten Zitat