Einzelnen Beitrag anzeigen

Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: Excel richtig beenden aus Delphianwendung

  Alt 6. Mär 2008, 19:51
Hallo okoeller,

das Problem ist, dass Du Excel mehrmals öffnest, ohne es zuvor zu Schließen.

1 Excel Aufruf
2 Excel Aufruf

1 Excel Schließen

Dann verbleibt der 1 Excel – Aufruf im Speicher.
Selbst wenn Du die Delphi – Anwendung schließt bleibt er dort.

Um den Speicher ordentlich zu hinterlassen sollte man so vorgehen:

1 Excel Aufruf
1 Excel Schließen

2 Excel Aufruf
2 Excel Schließen

usw.

Geht man so vor, bleibt ein Excel – Prozess im Speicher bis die Delphi – Anwendung geschlossen wird.

Man könnte nun prüfen, ob Excel schon läuft unter der Variable FExcel.

Delphi-Quellcode:
if VarIsEmpty(FExcel) then
begin
    EXCELStarten (FExcel);
end;
Um Excel restlos aus den Speicher zu löschen, ohne die Delphi – Anwendung zu schließen:

Delphi-Quellcode:
procedure TExcelImport.QuitExcel;
begin
  FSheet:= Unassigned;
  if not VarIsEmpty(FExcel) then
  begin
    FExcel.DisplayAlerts := False;
    FExcel.Quit;
    FExcel:= Unassigned;
  end;
end;
Wenn noch weitere Objekte eine Verbindung zu Excel haben, sind diese auch zu schließen, bevor Excel geschlossen wird, sonst verbleibt der Excel – Prozess bis zum Beenden der Delphi – Anwendung im Speicher.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat