![]() |
Programmabbruch mit Speicherbereinigung
Hallo,
kann mir jemand sagen, wie man im laufenden Betrieb "sauber" ein Programm beendet ? In meinem Fall möchte ich im laufenden Betrieb eine Strukturanpassung der Datenbank vornehmen, schlägt dies fehl (exception), so möchte ich das Programm beenden. Dazu habe ich folgendes versucht:
Code:
Das Prog wird dadurch auch beendet, aber es kommen einige Fehlermeldungen:
MainForm.Free; // ?????
exit;
Wie kann man es eleganter machen ? Gruß Hacki |
mit:
Delphi-Quellcode:
:roll: :?:
close;
|
Hi,
mit
Delphi-Quellcode:
, schliesst Du nur Dein Programm, mit
Close;
Delphi-Quellcode:
, kannst Du es richtig aus dem Speicher rausschmeissen. Also "richtig" Beenden.
Application.Terminate;
Grüsse, Daniel :hi: |
Hallo Hacki,
also ich glaube dein Programm wird durch diesen Quelltext nicht beendet, eher durch die Fehlermeldung. :wink: Das Form ist nicht das Programm sondern nur ein Bestandteil des Projektes. Die Fehlermeldungen rühren wahrscheinlich daher, daß noch einige Variablen auf Speicherbereiche Zeigen, welcher nicht mehr allociert ist also Zeiger die ins Nirvana zeigen. Greift nun das noch laufende Programm darauf zu, gibts ne Exception und das Programm wird Terminated. Wobei wir beim Stichwort währen. Versuch mal dein Programm mit
Delphi-Quellcode:
zu beenden. Zu Application kann man das Programm sagen :chat:.
Application.Terminate
Solltest du mit Verketteten Listen arbeiten, müssen die jedoch vorher freigegeben werden, das machst du am Besten im OnClose Ereignis deines Forms. OBjekte werden so weit ich weiß automatisch beim schließen Freigegeben. Mach ich aber immer mit der Try ... Finally Klausel. Alternative kannst du natürlich auch mit Mainform.Close aus dem MainForm das Programm beenden. Gruß danielA |
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:55 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