procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if  MessageDlg('确定是否退出系统',mtConfirmation, [mbYes, mbNo], 0) = mrNo then
  exit;
  else
  Application.Terminate;
end;
不管我点Yes或No窗体都将关闭,那么怎么才能在我点No的时候窗体不关闭呢?

解决方案 »

  1.   


    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); 
    begin 
      if  MessageDlg('确定是否退出系统',mtConfirmation, [mbYes, mbNo], 0) = mrNo then 
      exit; 
      else 
      Application.Terminate; 
    end; 
    不管我点Yes或No窗体都将关闭,那么怎么才能在我点No的时候窗体不关闭呢換到FormCloseQuery  中去寫,判斷 CanClose
      

  2.   

    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); 
    begin 
      if  MessageDlg('确定是否退出系统',mtConfirmation, [mbYes, mbNo], 0) = mrNo then 
      Action:= canone  else 
      Application.Terminate; 
    end; 
      

  3.   

    canone 是不做任何操作,cafree就关闭了。
      

  4.   

    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
      if  MessageDlg('确定是否退出系统',mtConfirmation, [mbYes, mbNo], 0) = mrNO then
        CanClose := False;
    end;