Re: halt/exit/terminate/close
Zitat:
|
Re: halt/exit/terminate/close
Das stammt IMHO noch von DOS zeiten, vergleichbar mit dem System-Befehl von Basic.
|
Re: halt/exit/terminate/close
Halt entspricht dem "Return" der Main-Funktion auch C
Man kann bei Halt also ein Returncode zurück geben welcher dann über Errorlevel abgefragt werden kann. Somit haben andere Programme die Mögichkeit herauszufinden ob ein Programm ordentlich durchgelaufen wurde oder abgebrochen. Dies wird zum Beispiel von Setup-Programmen genutzt welche andere Programme aufrufen. Liefert ein Programm welches vom Setup ausgeführt wird nicht das entsprechende Errorlevel zurück wird das ganze Setup abgebrochen etc. |
Re: halt/exit/terminate/close
Moin Zusammen,
also für mich ist in den meisten Fällen close der Befehl mit dem ich ein Programm beende. Application.Terminate hat, für mich, den Nachteil, dass es das OnClose- und vor allem das OnCloseQuery-Event nicht aufruft. Die werden zwar nicht immer benötigt, aber wenn doch muss ich mir anschliessend keine Gedanken darum machen, warum die genannte Events wohl nicht durchlaufen werden ;-) Halt kommt bei mir eigentlich nur dann in Frage, wenn ich, wie Jens schon erläutert hat, ein Konsolenprogramm habe, dass über Errorlevel einen Rückgabewert hat. |
Re: halt/exit/terminate/close
Mir fällt grad noch ein das bei Halt noch die "Finalization"-Abschnitte durchlaufen werden. Gibt es eine Variante wo dies nicht der Fall ist? Ich hab's bisher immer mit TerminateProcess gelöst wenn ich dies verhindern wollte was aber nicht die feine englische Art ist.
|
AW: halt/exit/terminate/close
Hi! Mal ne wichtige Frage:
Angenommen, ich erstelle irgendwo im Programm ne Menge Objekte und beende es irgendwann mit Halt. Sofern es nirgends unter finalization geschieht, werden diese Objekte ja nicht zerstört. Wird der Speicher unter Windows dann trotzdem freigegeben, nachdem das Programm mit Halt abgebrochen wurde? Bzw. wird nach dem Schließen/Abbrechen eines Programms nicht ohnehin sämtlicher Speicher (auch Speicherlecks), der durch dieses belegt wurde, freigegeben? Beste Grüße! Robert |
AW: halt/exit/terminate/close
Hallo Robert,
Wenn das Programm beendet wird, dann markiert Windows alle vom Programm verwendeten Speicherseiten wieder als frei. |
AW: halt/exit/terminate/close
Vielen Dank für die schnelle Antwort, Neutral General! :thumb:
|
AW: halt/exit/terminate/close
Probleme kann es z.B. bei gemeinsam genutzten DLLs geben. Ich weiß nicht, ob das für neue Windowsversionen auch gilt, aber zumindest bei XP noch wurden solche DLLs dann nicht mehr unbedingt entladen (wenn der Code zum entladen dann nicht mehr erreicht wird), weil die Referenzzählung durcheinander kam.
Unter anderem deshalb ist Halt nicht für produktive Anwendungen geeignet. |
AW: halt/exit/terminate/close
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz