Einzelnen Beitrag anzeigen

Nuclear-Ping
(Gast)

n/a Beiträge
 
#7

Re: Warum macht ein TForm.Close nicht NIL

  Alt 8. Mai 2008, 11:24
Delphi-Referenz durchsuchenTCustomForm.OnClose
Zitat von Delphi Hilfe:
Das Ereignis OnClose wird beim Schlieen des Formulars ausgelst.

type
TCloseAction = (caNone, caHide, caFree, caMinimize);

TCloseEvent = procedure(Sender: TObject; var Action: TCloseAction) of object;

property OnClose: TCloseEvent;

Beschreibung

Mit OnClose knnen Sie spezielle Verarbeitungen durchfhren, wenn das Formular geschlossen wird. Sie knnen in der zugehrigen Ereignisbehandlungsroutine beispielsweise prfen, ob in allen Feldern eines Dateneingabeformulars gltige Eingaben vorgenommen wurden.

Ein Formular wird geschlossen, nachdem die Methode Close aufgerufen oder im Systemmen die Option Schlieen gewhlt wurde.

Der Typ TCloseEvent zeigt auf eine Methode, die fr das Schlieen des Formulars zustndig ist. Der Parameter Action bestimmt, ob das Formular tatschlich geschlossen wird. Er kann die folgenden Werte annehmen:

Wert Bedeutung

caNone Das Formular darf nicht geschlossen werden, daher geschieht nichts.
caHide Das Formular wird nicht geschlossen, sondern lediglich verborgen. Die Anwendung kann nach wie vor auf das Formular zugreifen.
caFree Das Formular wird geschlossen und sein Speicher freigegeben.
caMinimize Das Formular wird nicht geschlossen, sondern als Symbol angezeigt. Bei untergeordneten MDI-Formularen ist dies die Standardeinstellung.

Enthlt bei einem untergeordneten MDI-Formular die Eigenschaft BorderIcons den Wert biMinimize, wird caMinimize als Standardaktion verwendet. Ist diese Eigenschaft nicht gesetzt, erhlt Action den Standardwert caNone, und beim Schlieen des Formulars werden keine speziellen Verarbeitungen durchgefhrt.

Bei einem untergeordneten SDI-Formular wird Action der Standardwert caHide zugewiesen.

Um das Formular in einer Ereignisbehandlungsroutine fr OnClose zu schlieen und freizugeben, setzen Sie Action auf caFree.

Hinweis: Beim Beenden der Anwendung tritt das Ereignis OnClose nur im Hauptformular, aber nicht in den untergeordneten Formularen auf.
(Umlaute sind beim Kopieren übers VNC verloren gegangen ...)
  Mit Zitat antworten Zitat