我想在点窗口右上角的叉叉时跳出一个对话框,询问是否要退出程序,然后点[mbyes]后退出,点[mbno]后返回.
这要怎么实现呢?

解决方案 »

  1.   

    tform1.onclosequery(sender :tobject;var canclose:boolean);
     begin
    if application.messagebox('Are You Sure to Exit?','Check',mb_okcancel)=idok then
      then
     canclose:=true
    else
     canclose:=false;
    end;
      

  2.   

    procedure WMSYSCOMMAND(var msg: TWMSYSCOMMAND);message WM_SYSCOMMAND;
    procedure TForm1.WMSYSCOMMAND(var msg: TWMSYSCOMMAND);
    begin
      if msg.CmdType = SC_CLOSE then
      begin
        if MessageBox(handle,'您确定要关闭吗?','关闭窗口',MB_YESNO+MB_ICONQUESTION) = IDYES then
        inherited;
      end else
      inherited;
    end;
      

  3.   

    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      if Application.MessageBox('您确实要退出系统吗?','退出',MB_YESNO)=IdYes then
      begin
        Action:=caFree;
        Form1:=nil;
      end
      else
      begin
        Action:=caNone;
      end;
    end;