点窗口的X时候,也就是在onclose事件中做一个判断,true就关闭窗口,false就不关闭当前窗口。怎么弄呢?有人说,弄一个全局变量,在不关闭窗口事件中,给这个全局变量赋值,然后在OnCloseQuery事件中判断,可是…可是,根本不执行OnCloseQuery中的语句……求高手解惑delphi窗口关闭

解决方案 »

  1.   

    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action:=caFree;
    end;象上面这样,就是关闭窗体
    如果Action:=caNone;就是不关闭。
    根据你自己的条件,来设置Action的值就行了。PS  OnCloseQuery事件是在OnClose事件之前执行的。
      

  2.   

    if MessageDlg('Are You Sure To Close?', mtWarning, [mbYes, mbNo], 0) <> mrYes then
        Action := caNone;
      

  3.   


    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      if MessageDlg('Are You Sure To Close?', mtWarning, [mbYes, mbNo], 0) <> mrYes then
        Action := caNone;
    end;
      

  4.   

    查看delphi自带的demo里面的例子就可以了。
      

  5.   

    cdchq
    明白了,也就是说,也可以在OnCloseQuery当中来写判断条件。谢谢。