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.