单击程序右上角的关闭 X 后,如何控制程序的关闭。(10分)

  • 主题发起人 主题发起人 binjinsx
  • 开始时间 开始时间
B

binjinsx

Unregistered / Unconfirmed
GUEST, unregistred user!
单击程序右上角的关闭 X 后,在FORM的ONCLOSE中如何控制
程序的不关闭。
 
不懂,你是想隐藏吗,还是骗人?
 
将Form的OnCloseQuery事件中的CanClose设置成False就不允许关闭你的Form了.
首先设置一个逻辑型变量控制是否允许关闭, 实例如下:
var
AllowClose: Boolean = false;
procedure TForm1.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
CanClose := AllowClose;
end;
//通过Button1来关闭
procedure TForm1.Button1Click(Sender: TObject);
begin
AllowClose := true;
Close;
end;

 
用如此方法可以控制:
procedure Form1.FormClose(Sender: TObject;
var Action: TCloseAction);
var I:Integer;
begin
I:=Application.MessageBox
('MY_MESSAGE','Title',MB_YESNOCANCEL+MB_ICONSTOP);
Case I of
2: Application.Run;{返回应用程序}
6: ....;{YES to close}
7: ....;{NO to close}
end;
 
procedure TForm1.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=False;
//则窗口就不关闭了
end;

 
对不起,刚才写错了,应该是
procedure TForm1.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if Application.MessageBox('是否关闭窗口?','询问', Mb_OKCancel)=ID_Cancel then
Action:=False;
//则窗口就不关闭了
end;
 
会长的方法是标准的解决方案,不适合放在FormClose中。
另外,SunCheng 写错了,应该是
Action:=caNone;
//则窗口就不关闭了
 
接受答案了.
 
后退
顶部