Einzelnen Beitrag anzeigen

omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Word schliessen geht nicht

  Alt 15. Aug 2006, 16:38
Hallo binio,

Zitat von binio:
habe das Problem das wenn ich CreateOleObject('word.application'); auffrufe um von Word den Pfad von den Vorlagen zu erfahren im Hintergund immer WinWord gestartet wird und es mir verweigert *.dot Daten im Vorlagenverzeichnis zu löschen.
was meinst du macht CreateOleObject('word.application');? Es öffnet Word, also ist doch klar das das dann im Hintergrund läuft. Das du dann keinen Zugriff auf bestimmte (geladenene) *.dot Dateien hast ist auch klar, du kannst keine geöffneten Dateien löschen. Das ist allgemein unter Windows so.

Ich habe noch nicht so ganz verstanden was du eigentlich vorhast...

Zugriff über CreateOleObject:
Delphi-Quellcode:
uses ComObj;

function GetVorlagenPfad:string;
var Word:OleVariant;
begin
  Word:=CreateOleObject('word.application');
  try
    Result:=Word.Options.DefaultFilePath[2];
  finally
    Word.Quit;
  end;
end;
Ich weiss nicht ob bei der PE auch der Server-Komponenten-Reiter vorhanden ist. Dort gibt es eine TWordApplication-Komponente.

Zugriff über TWordApplication:
Delphi-Quellcode:
uses WordXP; // kann eventuell auch anders heissen

function GetVorlagenPfad:string;
var Word:TWordApplication;
begin
  Word:=TWordApplication.Create(Self);
  try
    Word.Connect;
    Result:=Word.Options.DefaultFilePath[wdUserTemplatesPath];
  finally
    Word.Disconnect;
    Word.Quit;
    Word.free;
  end;
end;
Der Vorteil wenn du über TWordApplication gehen kannst ist, dass die Word-Konstanten in Delphi definiert sind und du so wesentlich leichter an die Kontentenwerte rankommst.

Gruss
Thorsten
  Mit Zitat antworten Zitat