怎样在窗口的onclose事件中禁止关闭窗口

解决方案 »

  1.   

    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
        if MessageBox(Handle, '确认关闭窗口吗?', '提示', MB_YESNO or MB_ICONQUESTION) <> ID_YES then
            Action := caNone;
    end;
      

  2.   

    OnCloseQuery
    事件上处理也可以
      

  3.   

    Delphi版现在没落了.
    楼主明明问A如何如何, 然后就有人回答B可以怎样. 然后楼主结帖了, 凡是参于者, 人均有分.
      

  4.   

    在ONCLOSE中加一个ABORT就关不掉了!procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    abort;
    end;
      

  5.   

    补充上楼:
    在onclose中加了Abort后程序窗口就关不掉了,
    你可以在窗体中放一个关闭按钮,
    在click事件加入application.Terminate;来中止程序
      

  6.   

    综上,应该有三种方法都可以实现让窗口关不掉:
    1、在onCloseQuery加入canclose:=Falseprocedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
    canclose:=False;
    end;
    2、在onClose加入action:=caNoneprocedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    action:=caNone;
    end;3、在OnClose加入Abortprocedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    abort;
    end;
      

  7.   

    最牛×的方法就是做一个Console程序,没有窗口看他怎么关闭 :)