在Form的onclosequery事件中
if k<>0 then
begin
   showmessage('can/t close');
   canclose:=false;
end;

解决方案 »

  1.   

    是啊
    在onclosequery里面加上自己的条件
    符合条件
     canclose:=true;
    不符合条件
     canclose:=false;
      

  2.   

    if  条件 then设置cancolse:=false
    ok!
      

  3.   

    procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
     IF application.MessageBox('请确定已存盘?','信息提示',mb_okcancel+MB_ICONINFORMATION)=idok  then
        canclose:=true
        else
         canclose:=false;
    end;
      

  4.   

    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
       canclose:=条件;
    end;
      

  5.   

    OnClose
      If 不满足条件 Then
        Abort.
      

  6.   

    System.Windows.Forms.DialogResult dr = MessageBox.Show(this,
    "你确定要退出管理终端吗?", "退出系统通知",
    MessageBoxButtons.YesNo, MessageBoxIcon.Question);
    if (dr!= System.Windows.Forms.DialogResult.Yes) 
    {
    e.Cancel=true;
    }
      

  7.   

    private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
    System.Windows.Forms.DialogResult dr = MessageBox.Show(this,
    "你确定要退出管理终端吗?", "退出系统通知",
    MessageBoxButtons.YesNo, MessageBoxIcon.Question);
    if (dr!= System.Windows.Forms.DialogResult.Yes) 
    {
    e.Cancel=true;
    }
    }
      

  8.   

    在关闭事件里,设定事件里相关参数为False,不同事件有不同的参数,参考一下帮助就能轻松搞定的
    CloseQuery事件更高级。比Close高级一些。或直接栏API