Einzelnen Beitrag anzeigen

ArneWolf

Registriert seit: 6. Feb 2008
5 Beiträge
 
#1

Fehler im Beenden von Excel-07, aber erst seit dieser Woche?

  Alt 18. Jun 2009, 11:15
Hallo zusammen,
wir haben hier im Kundenprojekt (Steuerung Excel über OLE) seit neustem ein sehr Merkwürdiges verhalten, dass das Excel-Objekt nach dem Schließen im Speicher bleibt (weiterhin im Taskmanager sichtbar). Und das mit Source, der seit 2 Jahren unverändert eingesetzt wird und immer funktioniert hat.

Wie gehabt wird das Excel-Objekt erzeugt mit
Delphi-Quellcode:
        excel:=CreateOLEObject('Excel.Application');
        excel.Visible:=false;
        excel.DisplayAlerts:=false;
        excel.Workbooks.Open(ExtractFilePath(ParamStr(0))+'xxx.xls');
        excel.Workbooks[1].Worksheets[1].Select;
und wird nach dem Abarbeiten und Speichern mit folgenden Anweisungen geschlossen:
Delphi-Quellcode:
        excel.quit;
        excel := unassigned;
        freeandnil(excel);
Wie gesagt, dieser Source hat seit 2 Jahren problemlos funktioniert, unter Excel 2003 wie auch 2007.
Seit Anfang dieser Woche läuft dies nun unter Excel-2007 nicht mehr, das Excel-Objekt bleibt im Speicher. Sowohl auf unseren eigenen Systemen wie auch auf Kundenseite, wo teilweise deutlich ältere und bis dahin problemlos laufende Versionen eingesetzt wurden. Die Beenden-Anweisungen werden korekt ausgeführt, es tritt auch keine Exception oder sonstige Warnung auf, aber es wird eben nicht mehr freigegeben.
Unter Excel-2003 läuft der gleiche Source wie gehabt problemlos.

Kann dies evtl. mit dem Microsoft Patch-Day letzt Woche zusammenhängen, dort gab es auch eine Reihe von Updates für Office-2007 und hat noch jemand anderes hier die geschilederten Probleme mit Excel-2007? Oder ist im Source oben an sich ein Denkfehler und gibt es eine andere Lösung die besser für Excel-2007 geeignet ist?

Danke und schöne Grüße
  Mit Zitat antworten Zitat