事件OnCloseQuery.
当然如果用NT的任务管理器来杀进程那就没办法了.

解决方案 »

  1.   

    var
      myCanClose: Boolean=False;procedure TfrmDengLu.BitBtn1Click(Sender: TObject);
    begin
      if ComboBox1.Text='' then
        Panel2.Caption:='请选择用户名'
      else
      begin
        with DM1.ADOQuery1 do
        begin
          close;
          sql.Clear;
          sql.Add('select * from 用户');
          sql.Add('where 姓名='''+Combobox1.Text+'''');
          sql.Add('and 口令='''+Edit1.Text+'''');
          open;      if IsEmpty then
          begin
            Panel2.Caption:='口令不正确';
            Edit1.SetFocus;
          end
          else
          begin
            MainForm.N3.Enabled:=true;
            mainForm.N14.Enabled:=true;
            MainForm.N2.Enabled:=false;
            myCanClose := True;
            Close;
          end;
        end;
      end;
    end;procedure TfrmDengLu.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
      CanClose := myCanClose;
    end;