Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi halt/exit/terminate/close (https://www.delphipraxis.net/79708-halt-exit-terminate-close.html)

Cöster 26. Okt 2006 19:17


halt/exit/terminate/close
 
Hi!

Was sind eigentlich die Unterschiede zwischen Halt, Exit, Terminate und Close? Mit allen kann man das Programm beenden, mit Exit nur, wenn die aktuelle Prozedur das Hauptprogramm ist (was bedeutet das? im finalization-Teil?). Wann sollte man was benutzen, was sind die Vorteile sich gegenseitig gegenüber? Aus der Hilfe bin ich nicht schlau geworden.

shubbi 26. Okt 2006 19:30

Re: halt/exit/terminate/close
 
Halt beendet das Programm ziemlich brutal, ist also nicht zu empfehlen. (Delph6-Hilfe (EN): "Initiates abnormal termination of a program.")

Exit springt an das Ende der aktuellen Funktion/Prozedur. Ist machmal ganz praktisch.

Terminate ist eine Funktion von TApplication, also deiner Anwendung. Zum Beenden eines Programmes ist dies am besten, da dem Programm gesagt wird "so, jetzt darfst du dich beenden", so dass Resourcen noch freigegeben werden können (im Gegensatz zu Halt)

Close ist eine Funktion von TForm. Damit wird das jeweilige Fenster geschlossen. Ist dieses Fenster das Hauptfenster, so wird Apllication.Terminate automatisch aufgerufen.

Cöster 26. Okt 2006 19:40

Re: halt/exit/terminate/close
 
Danke erstmal!
Aber es gibt doch sicherlich auch Situationen, in denen man Halt verwenden sollte.
Wenn die Prozedur, in der Exit aufgerufen wird, das "Hauptprogramm" ist, wird laut der Hilfe auch das Programm beendet. Was ist denn das "Hauptprogramm"?

mirage228 26. Okt 2006 19:42

Re: halt/exit/terminate/close
 
Hi,

das "Hauptprogramm" ist das, was in deiner DPR-Datei zwischen "begin" und "end" steht ;)

mfG
mirage228

Sunlight7 26. Okt 2006 19:42

Re: halt/exit/terminate/close
 
[Mein Senf dazu]

Zitat:

Zitat von shubbi
Exit springt an das Ende der aktuellen Funktion/Prozedur. Ist machmal ganz praktisch.

Zu beachten ist, das Exit noch in einen eventuell vorhandenen finally Block springt. :zwinker:

Zitat:

Zitat von shubbi
Terminate ist eine Funktion von TApplication, also deiner Anwendung. Zum Beenden eines Programmes ist dies am besten, da dem Programm gesagt wird "so, jetzt darfst du dich beenden".

Terminate gibt's auch in Threads :zwinker:

[/Mein Senf dazu]

Edit: Der Abort ist manches mal auch praktisch, der alle Prozeduren im Stack auf Stumme art und weise verlässt.

shubbi 26. Okt 2006 19:50

Re: halt/exit/terminate/close
 
@Sunlight7: Das mit dem Finally-Block wusste ich nicht.
TThread.Terminate (übrigens gibts auch TWebSession.Terminate :dancer: ) war wohl nicht gemein.

@Cöster: Halt ist ein Überbleibsel aus Turbo Pascal Zeiten und hat meiner Meinung nach heute keine Vorteile mehr.

Sunlight7 26. Okt 2006 19:56

Re: halt/exit/terminate/close
 
Man lernt doch immer was dazu :???:

Der Halt hat für mich große Vorteile, den nehme ich anstelle von ShowMessage, wenn ich testen will, ob irgendein neues Ding funktioniert :mrgreen:

Cöster 26. Okt 2006 20:08

Re: halt/exit/terminate/close
 
Zitat:

Zitat von Sunlight7
Der Halt hat für mich große Vorteile, den nehme ich anstelle von ShowMessage, wenn ich testen will, ob irgendein neues Ding funktioniert :mrgreen:

Ok, aber wozu gibt es dann Halt auch ohne Meldung?

Sunlight7 26. Okt 2006 20:14

Re: halt/exit/terminate/close
 
Nicht ganz verstehen. :gruebel:

Wenn ich ShowMessage nehmen würde, müßte ich zuerst OK klicken und dann noch das Programm schließen, bis ich zum Quelltext komme.

Bei Halt macht sich das Programm zu und ich weiß, es hat funktioniert.
OK, man könnte auch Application.Terminate nehmen, aber Halt schreibt sich halt mal schneller :mrgreen:

DP-Maintenance 26. Okt 2006 20:18

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "Sonstige Fragen zu Delphi" nach "Object-Pascal / Delphi-Language" verschoben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:41 Uhr.
Seite 1 von 3  1 23      

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