如何在delphi中拦截关闭窗口消息

Frank0233 2000-07-02 01:40:00
如何拦截点击窗口关闭按钮的消息
比如当点击关闭按钮后,程序执行最小化窗口
...全文
609 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fyje 2000-07-02
  • 打赏
  • 举报
回复
哇,已经解决了,我来晚了
menxin 2000-07-02
  • 打赏
  • 举报
回复
是的,可要留好后路啊。


procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
Application.Minimize;
CanClose:=False;
end;
CJ 2000-07-02
  • 打赏
  • 举报
回复
Occurs when the form closes.

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

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

property OnClose: TCloseEvent;

Description

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 and form and free it in an OnClose event, set Action to caFree.


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.

procedure TForm1.FormClose(Sender: TObject; var
Action: TCloseAction);

begin
if MessageDlg('Close application ?', mtConfirmation,
[mbYes, mbNo], 0) = mrYes then
Action := caFree
else
Action := caNone;
end;
depend 2000-07-02
  • 打赏
  • 举报
回复
OnCloseQuery

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧