Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Problem mit OLE Zugriff auf Word (https://www.delphipraxis.net/52693-problem-mit-ole-zugriff-auf-word.html)

Frulle 1. Sep 2005 21:47


Problem mit OLE Zugriff auf Word
 
Hallo,

Ich habe folgendes Problem und hoffe, das ich hier Hilfe finden kann.
Ich greife von Delphi aus über die WordApplication Komponente auf Word zu. Hier der entsprechende Quellcode:

Delphi-Quellcode:
WordApplication1.Connect;
try
WordApplication1.Documents.Open(Filename, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
Filetyp := wdFormatHTML; // doc --> html
Outfile:= word_file_out; // Speicherpfad
WordDocument1.SaveAs(Outfile,Filetyp); // Speichert die Datei als html-Datei ab
WordDocument1.Close;
WordDocument1.Disconnect;
finally
WordApplication1.Quit;
WordApplication1.Disconnect;
end;
Das Problem ist nun, dass dieser Zugriff mal funktioniert und mal nicht, und (in meinen Augen) komplett zufallsabhängig. Mal kann ich den Codeschnippsel 10 mal nacheinander aufrufen, danach gibt er mir jedes zweite Mal einen Fehler aus.

Die Fehlermeldungen wechseln sich dabei ab (auch wenn ich das ganze Programm vorher resette, die Prozedur also nicht schon lief):

Zitat:

Der RPC-Server ist nicht verfügbar.
Zitat:

Exception EOleException in Modul Project1.exe bei 000B7E8B.
Der RPC-Server ist nicht verfügbar.
Zitat:

Der Remoteprozeduraufruf ist fehlgeschlagen.
Word selbst ist standartmäßig deaktiviert. Ich habe schon diverse Versuche unternommen, aber es bleibt ein Glücksspiel - mal startet er, mal nicht.
Hat jemand eine Idee woran das liegen könnte und wie ich das verhindern kann?

Bernhard Geyer 2. Sep 2005 07:13

Re: Problem mit OLE Zugriff auf Word
 
Evtl ähnliches Problem mit Excel. Lösung ist mein letztes Post.

Frulle 3. Sep 2005 11:18

Re: Problem mit OLE Zugriff auf Word
 
Hi,

ich konnte diese Lösung nicht auf mein Beispiel übertragen,
exel steuert sich ganz anders an als word.

Keldorn 3. Sep 2005 11:41

Re: Problem mit OLE Zugriff auf Word
 
Hallo

mit der RPC-Fehlermeldung habe ich auch öfters Problemchen. Bei mir liegts an den unterschiedlichen connect und disconnect-aufrufen und gewaltsammes Beenden von Word. Zu jedem connect muß es auch ein disconnect geben. du kannst dich nicht wieder vebinden, wenn ein disconnect vorher gefehlt hat.

Ich würde das WordApplication1.Quit; aus dem finally-Block rausnehmen und die ganzen Bearbeitungsschritte evtl noch in ein try except. Wenn du Word nicht beenden kannst, siehst du nie das disconnect.
Ich kanns jetzt nicht probieren, aber Saveas: was ist, wenn die Datei schon existiert? gibts da eine Nachfrage von Word bzw eine Option, die Nachfrage bei saveas zu verhindern? Wenn du eine Fehlermeldung siehst, gehts an der Stelle nicht weiter, Word kannst du evtl nicht beenden, da noch ein geändertes Dok offen ist und das disconnect siehst du nicht. und bei close kannst du evtl. noch savechanges=false übergeben.

Mfg Frank

Frulle 8. Sep 2005 17:03

Re: Problem mit OLE Zugriff auf Word
 
@Keldorn: Habe versucht deinen Vorschlägen zu folgen, aber ich glaube mittlerweile das ich das Problem nicht in den Griff bekommen kann. Es tritt selbst dann auf, wenn ich nur leere Dokumente öffne und wieder schließen möchte ohne das diese in weitere Prozesse eingebunden sind.

Trotzdem danke für die Antworten

Gruß

Frulle


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz