![]() |
unterschiede beim Schliessen des Progi
Wenn ich normalerweise mein Programm schliesse (mit x rechts oben), geschieht dies mit
Delphi-Quellcode:
Ich kann ja im Menu auch einbauen:
mainform.Close;
Delphi-Quellcode:
Welches ist die "bessere" Lösung, das Progi zu schliessen, bzw. was geschieht genau bei der einen und was bei der anderen Lösung?
Application.Terminate;
|
Re: unterschiede beim Schliessen des Progi
Du solltest das Mainform.Close vorziehen.
Denn nur dann werden verschiedene Abläufe durchlaufen. Es wird das Mainform gelöscht und Speicher freigegeben, alle nicht mehr benötigten Komponenten werden gelöscht und deren Speicher freigegeben und vor allem wird das Form.Close und Form.Destroy durchlaufen. Bei Application.Terminate wird die Anwendung abgebrochen und nichts freigegeben. Es passiert das gleiche, wie wenn du die Anwendung im Taskmanager abschiesst. |
Re: unterschiede beim Schliessen des Progi
Danke für deine wertvollen Infos...
|
Re: unterschiede beim Schliessen des Progi
Nicht ganz. Mit Application.Terminate wird der Prozess beendet und Windows räumt den Speicher auf. Aber es wird kein OnClose, OnCloseQuery und kein OnDestroy mehr ausgeführt.
|
Re: unterschiede beim Schliessen des Progi
Zitat:
bei Application.Terminate wird nicht aller Speicher wieder freigegeben. Bzw. bei Form.Close wird mehr Speicher freigegeben. |
Re: unterschiede beim Schliessen des Progi
Wo hast du es getestet? So bald ein Prozess beendet wird, gibt auch Windows den Speicher dieses Prozess automatisch wieder frei.
|
Re: unterschiede beim Schliessen des Progi
Zitat:
ernsthaft: eine grössere Applikation mit mehreren Festern. Ein Fenster aufgemacht, Eingaben getätigt, Fenster wieder geschlossen, anderes Fenster geöffnet, Änderungen, Fenster geschlossen, usw., dann Anwendung geschlossen. Dabei den Speicherplatz im Taskmanager->Systemleistung angeschaut. Beim Mainform.Close (Kreuz oben rechts) wurde aller Speciher wieder freigegeben. Bei Applikation.Terminate (in Datei->Schliessen eingebaut) wurde eben nicht aller Speicher freigegeben. Wieviel belegt geblieben ist, weiss ich nicht mehr genau. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 Uhr. |
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 by Thomas Breitkreuz