关闭提示的代码:
procedure Tmain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 if application.MessageBox('你确定退出系统吗?','提示',mb_okcancel)=idok
 then  close; 
end;

解决方案 »

  1.   

    if application.MessageBox('你确定退出系统吗?','提示',mb_okcancel)=idok 
    then  close; 改为CanClose := application.MessageBox('你确定退出系统吗?','提示',mb_okcancel)=idok ;
      

  2.   

    用主from的CloseQuery事件
    procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    var
      MegAnswer: integer;
    begin
      MegAnswer := Application.MessageBox('确定退出系统?',
        '提示', MB_TOPMOST + MB_ICONQUESTION + MB_YESNO + MB_DEFBUTTON2);
      case MegAnswer of
        IDYES:CanClose := True;//退出
        IDNO: CanClose := False; //不退出}
      end;
    end;
      

  3.   

    晕倒,要放在OnCloseQuery事件,而不是OnClose
      

  4.   

    可以放在OnClose里面的,不过代码要变一下:
    procedure Tmain.FormClose(Sender: TObject; var Action: TCloseAction); 
    begin 
    if application.MessageBox('你确定退出系统吗?','提示',mb_okcancel)<> idok then
      Action := caNone;
    end;