Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Beenden von Programmen (https://www.delphipraxis.net/148427-beenden-von-programmen.html)

xxsasch4xx 1. Mär 2010 18:47


Beenden von Programmen
 
weiss einer wo der unterschied ist bei:

Delphi-Quellcode:
application.terminate;
Delphi-Quellcode:
close;
und dem normalen Beenden über das Schließ X oben rechts?

daywalker9 1. Mär 2010 18:56

Re: Beenden von Programmen
 
Close schließt nur die Form.

Application.Terminate hingegen die ganze applikation.

Wenn du auf "X" klickst, wird auch nur das Close der Form aufgerufen

xxsasch4xx 1. Mär 2010 19:00

Re: Beenden von Programmen
 
also wird ein programm nicht aus dem RAM gelöscht wenn man nur mit close schließt, habe ich das richtig verstanden?

daywalker9 1. Mär 2010 19:01

Re: Beenden von Programmen
 
Nun ja, kommt drauf an welche Form du mit Close schließt, ist es die Application.MainForm, wird auch nur Application.Terminate aufgerufen.

Delphi-Quellcode:
procedure TCustomForm.Close;
var
  CloseAction: TCloseAction;
begin
  if fsModal in FFormState then
    ModalResult := mrCancel
  else
    if CloseQuery then
    begin
      if FormStyle = fsMDIChild then
        if biMinimize in BorderIcons then
          CloseAction := caMinimize else
          CloseAction := caNone
      else
        CloseAction := caHide;
      DoClose(CloseAction);
      if CloseAction <> caNone then
        if Application.MainForm = Self then Application.Terminate
        else if CloseAction = caHide then Hide
        else if CloseAction = caMinimize then WindowState := wsMinimized
        else Release;
    end;
end;

Christian Seehase 1. Mär 2010 19:04

Re: Beenden von Programmen
 
Mit Form.Close des Hauptformulares wird das Programm sauber beendet, und die übrigen Ereignisroutinen abgearbeitet.
Bei Application.Terminate würden nur die OnDestroy-Routinen verarbeitet, soweit vorhanden, aber nicht, z.B., OnCloseQuery und OnClose.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 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-2025 by Thomas Breitkreuz