我在FORM窗体的CLOSE事件中编写了如下代码,当我按下[x],显示完信息窗口后form窗体照样关闭,这是为什么?我是不是少写了什么代码?
我的愿意是如果显示信息窗口则返回FORM窗体。
procedure Tftp_form.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if (aConnect<>nil) or (aInternet<>nil) then
begin
Application.MessageBox('请先断开FTP连接!','信息',MB_OK+
MB_ICONINFORMATION+MB_SYSTEMMODAL);
ftp_filelist.SetFocus;
end
else
begin
close;
end;
end;
我的愿意是如果显示信息窗口则返回FORM窗体。
procedure Tftp_form.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if (aConnect<>nil) or (aInternet<>nil) then
begin
Application.MessageBox('请先断开FTP连接!','信息',MB_OK+
MB_ICONINFORMATION+MB_SYSTEMMODAL);
ftp_filelist.SetFocus;
end
else
begin
close;
end;
end;
begin
Application.MessageBox('请先断开FTP连接!','信息',MB_OK+
MB_ICONINFORMATION+MB_SYSTEMMODAL);
ftp_filelist.SetFocus;
action:=canone;//表示不关闭
end
begin
if (aConnect<>nil) or (aInternet<>nil) then
begin
Application.MessageBox('请先断开FTP连接!','信息',MB_OK+
MB_ICONINFORMATION+MB_SYSTEMMODAL);
ftp_filelist.SetFocus;
Action:=CANONE;
end
else
begin
Action:=CAFREE;
end;
end;
begin
if (aConnect<>nil) or (aInternet<>nil) then
begin
Application.MessageBox('请先断开FTP连接!','信息',MB_OK+
MB_ICONINFORMATION+MB_SYSTEMMODAL);
ftp_filelist.SetFocus;
Action:= caNone;
end
else
begin
Action:= caFree;
end;
end;你这个判断最好放在onCloseQuery里面CanClose:= (aConnect<>nil) or (aInternet<>nil);
if not CanClose then
Application.MessageBox('请先断开FTP连接!','信息',MB_OK+ MB_ICONINFORMATION+MB_SYSTEMMODAL);
你这个判断最好放在onCloseQuery里面
Action是onclose的参数