如何在点击主窗体右上角的关闭键(X)后,弹出确认对话框

时间:2022-11-15 23:51:35
如何在点击主窗体右上角的关闭键(X)后,弹出确认对话框,选是则关闭程序,选否则返回主窗体

10 个解决方案

#1


OnCloseQuery or OnClose Event

#2


OnCloseQuey事件
if 要关闭 then
  CanClose:=True
else
  CanClose:=False;

#3


在窗体的onclosequery事件中写代码就行了

#4


procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose := MessageDlg('你想退?', mtWarning, [mbYes, mbNo], 0) = mrYes;
end;

#5


在OnClose内写事件
if MessageBox(self.Handle,'您真的想退出程序吗?','询问',MB_ICONQUESTION+MB_YESNO+MB_DEFBUTTON2)=IDNO then
Action:=acNone;

#6


拦截消息,wm_syscommand,关闭的参数是SC_CLOSE

#7


忘了告诉你,OnCloseQuery事件是在程序执行onclose事件之前执行的,

#8


belllab(bell)老兄,好象你的方法不得诶,它提示Action:=acNone出错

#9


应该是Action:=caNone;

#10


1.onclosequery
2.canclose

#1


OnCloseQuery or OnClose Event

#2


OnCloseQuey事件
if 要关闭 then
  CanClose:=True
else
  CanClose:=False;

#3


在窗体的onclosequery事件中写代码就行了

#4


procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose := MessageDlg('你想退?', mtWarning, [mbYes, mbNo], 0) = mrYes;
end;

#5


在OnClose内写事件
if MessageBox(self.Handle,'您真的想退出程序吗?','询问',MB_ICONQUESTION+MB_YESNO+MB_DEFBUTTON2)=IDNO then
Action:=acNone;

#6


拦截消息,wm_syscommand,关闭的参数是SC_CLOSE

#7


忘了告诉你,OnCloseQuery事件是在程序执行onclose事件之前执行的,

#8


belllab(bell)老兄,好象你的方法不得诶,它提示Action:=acNone出错

#9


应该是Action:=caNone;

#10


1.onclosequery
2.canclose