RAD Studio VCL Reference
|
Occurs when the form closes.
property OnClose: TCloseEvent;
__property TCloseEvent OnClose;
Use OnClose to perform special processing when the form closes. The OnClose event specifies which event handler to call when a form is about to close. The handler specified by OnClose might, for example, test to make sure all fields in a data-entry form have valid contents before allowing the form to close.
A form is closed by the Close method or when the user chooses Close from the form's system menu.
The TCloseEvent type points to a method that handles the closing of a form. The value of the Action parameter determines if the form actually closes. These are the possible values of Action:
Value |
Meaning |
caNone |
The form is not allowed to close, so nothing happens. |
caHide |
The form is not closed, but just hidden. Your application can still access a hidden form. |
caFree |
The form is closed and all allocated memory for the form is freed. |
caMinimize |
The form is minimized, rather than closed. This is the default action for MDI child forms. |
If a form is an MDI child form, and its BorderIcons property is biMinimize, then the default Action is caMinimize. If a MDI child form does not have these settings, the default Action is caNone, meaning that nothing happens when the user attempts to close the form.
If a form is an SDI child form, Action defaults to caHide.
To close the form and free it in an OnClose event, set Action to caFree.
C++ Examples:
/* This example displays a message dialog box when the user attempts to close the form. If the user clicks the Yes button, the form closes; otherwise, the form only minimizes. TCustomForm.Close does not allow an action of caMinimize for a form closing itself. Close Form2 from Form1 (from a button?) and implement the OnClose in Form2. Place "Application.CreateForm(TForm2, Form2);" in the project dpr file to open Form2 and set the Form2 Visible property to True. */ void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action) { if (MessageDlg("Close application ?", mtConfirmation, TMsgDlgButtons() << mbYes << mbNo,0) == mrYes) Action = caFree; else Action = caMinimize; }
Delphi Examples:
{ This example displays a message dialog box when the user attempts to close the form. If the user clicks the Yes button, the form closes; otherwise, the form only minimizes. TCustomForm.Close does not allow an action of caMinimize for a form closing itself. Close Form2 from Form1 (from a button?) and implement the OnClose in Form2. Place "Application.CreateForm(TForm2, Form2);" in the project dpr file to open Form2 and set the Form2 Visible property to True. } procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); begin if MessageDlg('Close application ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then Action := caFree else Action := caMinimize; end;
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
|
What do you think about this topic? Send feedback!
|