Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Word-OleObject korrekt schliessen? (https://www.delphipraxis.net/85045-word-oleobject-korrekt-schliessen.html)

Angel4585 25. Jan 2007 10:15


Word-OleObject korrekt schliessen?
 
Hallo,

Ich öffne per OleContainer ein Worddokument, habe jetzt beim Beenden des Programms folgende Probleme:

1.Es existiert nach wie vor eine WINWORD.EXE im Taskmanager
//2.Es kommt eine AV in der ole32.dll und dann dreimal Runtime Error 216 bei 004038A6 und zweimal 0042CDAE(Hat sich erledigt :) )

ich löse ein Olecontainer1.OleObject.Application.Quit vor dem schliessen aus, was eigentlich doch genügen sollte oder?

Hoffe ihr habt Antworten :?

:angel:

Angel4585 26. Jan 2007 15:02

Re: Word-OleObject korrekt schliessen?
 
So, nachdem die Runtime-Errors zwischenzeitlich weg waren, sind diese schon wieder da.
Das programm schliesst sich immernochnicht... hat keiner eine Idee? :angel:

Angel4585 30. Jan 2007 11:50

Re: Word-OleObject korrekt schliessen?
 
Die Fehler aus den andern beiden Threads konnte ich zwar beheben, aber die Runtime-Errors sind noch da.
Weis da mittlerweile jemand was ich da falsch machen könnte?

Also der Ablauf sieht so aus:

CreateObjectFromFile;
Objektinhalt bearbeiten
Objekt, bzw. Dokument in Datei speichern
//Hier muss ich denke ich etwas tun, aber ich weis nicht was...
Formular schliessen

hoika 30. Jan 2007 11:57

Re: Word-OleObject korrekt schliessen?
 
Hallo,

das erzeugte OLE-Objekt auf NIL setzen ?


Heiko

Angel4585 30. Jan 2007 12:07

Re: Word-OleObject korrekt schliessen?
 
Das Problem ist, das mein OLE-Objekt(OleContainer1.OleObject) eine Nur-Lesen-Eigenschaft ist und ich der keinen Wert, also auch nicht NIL zuweisen kann.
Deswegen versuche ich die Funktion OleContainer1.DestroyObject aufzurufen um es freizugeben, was zwar functioniert, aber nichts an den Fehlern ändert.

capo 30. Jan 2007 12:11

Re: Word-OleObject korrekt schliessen?
 
hatte mal so eine meldung wegen meinem virenprogram von norton

Angel4585 30. Jan 2007 12:19

Re: Word-OleObject korrekt schliessen?
 
Virenprogramm war aktiv, habs grad ausgeschaltet, Runtime-Errors kommen aber immernoch

Angel4585 21. Feb 2007 08:04

Re: Word-OleObject korrekt schliessen?
 
Hat echt keiner ne Ahnung was ich verkehrt mache? Ich kann echt keine Runtime Errors mehr sehn :cry:

raiguen 21. Feb 2007 09:51

Re: Word-OleObject korrekt schliessen?
 
Moin :-)
Probier das mal so:
Delphi-Quellcode:
...
//--Dokument in OleContainer laden
      if (OleContainer1.State = osEmpty) then
        begin
          OleContainer1.CreateObjectFromFile(cDokument, False);
          OleContainer1.Run;
          OleContainer1.Align := alClient;
          OleContainer1.SizeMode:= smScale;
          OleContainer1.Visible := True; //--falls noch nicht sichtbar
        end
      else
        OLEContainer1.doVerb(1);
...
//--Dokument schließen(speichern) und OLEContainer freigeben (vorzugsweise im FormClose):
...
  if OleContainer1.State<>osEmpty then
    begin
      //änderungen im Formular speichern
      OleContainer1.SaveAsDocument(cDokument);
      Visible := False;
      OleContainer1.Close;
      OleContainer1.DestroyObject;
  end;

Angel4585 22. Feb 2007 14:26

Re: Word-OleObject korrekt schliessen?
 
zum schliessen evrwende ich:

OleContainer1.OleObject.Application.Quit;
OleContainer1.DestroyObject;
OleContainer1.Destroy;

Aber das Word geht einfach nicht zu, es ist und bleibt in den Prozessen...

ich verwende OleContainer1.DoVerb(ovShow); um das Objekt anzuzeigen, vllt macht das Probleme, denn ovShow ist -1, aber ein Versuch mit 1 hat auch keine Besserung gebracht.
:(

Edit:
Mir ist grad aufgefallen, dass das Programm wenns "normal" läuft 9 Threads im Taskmanager anzeigt, wenn ich diesen OleContainer öffne jedoch 4 dazukommen, also 13. Wenn ich das Fenster mit dem OleContainer jetzt schliesse und auch freigebe, bleibt es allerdings auf 13. :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:08 Uhr.
Seite 1 von 2  1 2      

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