procedure TbalanFrm.BitBtn2Click(Sender: TObject);
begin
if messagebox(self.Handle,'你確定要退出該界面嗎?','提示',MB_YESNO OR MB_ICONINFORMATION)=IDYES then
begin
close;
end;
end;
这个过程一运行,要弹出二个提示界面来,要按二次YES,很烦人,不知大家是怎样解决的,如果close改成application.Terminate;就没有问题,但是我在这里只想关这个界面,并不想退出整个程序。急盼解决办法。
begin
if messagebox(self.Handle,'你確定要退出該界面嗎?','提示',MB_YESNO OR MB_ICONINFORMATION)=IDYES then
begin
close;
end;
end;
这个过程一运行,要弹出二个提示界面来,要按二次YES,很烦人,不知大家是怎样解决的,如果close改成application.Terminate;就没有问题,但是我在这里只想关这个界面,并不想退出整个程序。急盼解决办法。
处理这个事件的CanClose参数就可以。
致于MessageBox函数,调用一次,怎么会显示两个box出来,我可能没有懂你的意思,也许你的程序逻辑上下文需要看下才知道。
procedure Tfrmuser.FormClose(Sender: TObject; var Action: TCloseAction);
begin
label8.Caption:='';
if messagebox(self.Handle,'你確定要退出該界面嗎?','提示',MB_YESNO OR MB_ICONINFORMATION)=IDNO then
begin
abort;
end;end;
这个事件,但不知为何会触发这个事件,在用close时;不知怎样处理
if messagebox(self.Handle,'你確定要退出該界面嗎?','提示',MB_YESNO OR MB_ICONINFORMATION)=IDNO then
begin
canclose:=FALSE;
end;
end;OnCloseQuery执行在close前
caNone不对窗体进行处理
caHide隐藏窗体
caFree关闭并释放所占内存
...
begin
if messagebox(self.Handle,'你確定要退出該界面嗎?','提示',MB_YESNO OR MB_ICONINFORMATION)=IDYES then
begin
hide;
end;
end;
Action:=caHide; 隐藏窗体 ,但未消失,程序依然可以对窗体进行控制。这是单窗体的默认值