当询问后,再关闭程序,为什么点击取消的时候,程序虽然没有被关闭但是界面已经看不见了,看看代码:
procedure TFrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if (Application.MessageBox('确信要退出系统吗?','提示',MB_OKCANCEL+MB_ICONWARNING) <> IDCANCEL ) then
begin
Application.Terminate;
end;
end;
procedure TFrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if (Application.MessageBox('确信要退出系统吗?','提示',MB_OKCANCEL+MB_ICONWARNING) <> IDCANCEL ) then
begin
Application.Terminate;
end;
end;
这样写
if (Application.MessageBox('确信要退出系统吗?','提示',MB_OKCANCEL+MB_ICONWARNING) = IDCANCEL ) then
begin
canclose:=false;
end;
窗体关闭时触发。
Application.Terminate是退出程序中所有打开的窗口。
if application.messagebox('是否退出?', '提示',mb_YesNo+MB_APPLMODAL+MB_ICONQUESTION+MB_DEFBUTTON2)=idyes then
canclose:=TRUE
else
CANCLOSE:=FALSE;
这就没有问题了
procedure TF_main.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if application.messagebox('是否退出?', '提示',mb_YesNo+MB_APPLMODAL+MB_ICONQUESTION+MB_DEFBUTTON2)=idyes then
canclose:=TRUE
else
CANCLOSE:=FALSE;
end;
不过还要改一下,或许是针对我的程序把
procedure TF_main.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if application.messagebox('是否退出?', '提示',mb_YesNo+MB_APPLMODAL+MB_ICONQUESTION+MB_DEFBUTTON2)=idyes then
//canclose:=TRUE
Application.Terminate
else
CANCLOSE:=FALSE;
end;