我在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;

解决方案 »

  1.   

    if (aConnect<>nil) or (aInternet<>nil) then
    begin
        Application.MessageBox('请先断开FTP连接!','信息',MB_OK+
                               MB_ICONINFORMATION+MB_SYSTEMMODAL);
        ftp_filelist.SetFocus;
        action:=canone;//表示不关闭
    end
      

  2.   

    楼上的朋友,action 是form窗体中的属性吗?
      

  3.   

    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;
        Action:=CANONE;
    end
    else
    begin
        Action:=CAFREE;
    end;
    end;
      

  4.   

    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;
        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);
      

  5.   

    同意楼上pazee(耙子) 的说法
    你这个判断最好放在onCloseQuery里面
    Action是onclose的参数