如何在退出时让程序弹出询问窗体(MESSAGEDLG),按MRYES就退出应用程序,按
MRNO询问窗体就消失??

解决方案 »

  1.   

    If APPLICATION.MessageBox ('是否退出程序?',pchar(caption),MB_OKCANCEL + MB_DEFBUTTON1) <> IDOK then
      exit
    else
      .........
      

  2.   

    if application.message('quit?','询问',mb_okcancal)=idok then
    ......
      

  3.   

    if message('是否退出程序?',mtconfirmation,[mbyes,mbno],0)=mrno
    then ...
      

  4.   

    if messagedlg('是否退出程序?',mtconfirmation,[mbyes,mbno],0)=mrno
    then ...
      

  5.   

    在主窗体CLOSEQUERY事件中写  
    if MessageDlg(是否退出程序?',
        mtConfirmation, [mbYes, mbNo], 0) = mrYes then
      begin
       close;
      end;
      

  6.   

    当然,我问的是点击FORM右上角的关闭按钮事件,而不是别的触发事件!
      

  7.   

    问题是在CLOSEQUERY里写事件的话,就算用户点击了MBNO,也还是会退出程序,
    怎么解决,谢谢!
      

  8.   

    如果不想关闭的话,把入口参数CANCLOSE设为FALSE就行。这个值进来是默认是true,你可以自己确认一下。
      

  9.   

    你应该在OnClose事件里写,代码如下:
    if application.message('要退出吗?','提示',mb_yesNo)=6 then//选择的是
      begin
        Action:=cafree;
      end
    else
      begin
        Action:=caNone;
      end;
      

  10.   

    更正楼上: application.MessageBox()
      

  11.   

    谁能顺便告诉我messageDlg函数的具体用法?
      

  12.   

    MessageDlg函数
    function MessageDlg(const Msg:string;DlgType:TMsgDlgType;Buttons:TMsgDlgButtons;HelpCTx:LongInt):Word;该函数生成一消息对话框并获得用户的响应。Msg参数为显示的消息内容,DlgType指定对话框的类型,Buttons指定对话框中显示的按钮。HelpCtx为用户单击对话框的帮助按钮或按F1键时,指定应显示的帮助标题的正文ID。该函数返回用户选择的按钮值。若在对话框中按Ctrl+C键,则消息的文本将拷贝到剪贴板中。下表列出可在对话框中显示的每种类型按钮的TMsgDlgBtn值及用户选择按钮后返回相应的值。TMsgDlgBTN值|返回值
    mbOK        |mrOk
    mbCancel    |mrCancel
    mbYes       |mrYes
    mbNo        |mrNo
    mbAbort     |mrAbort
    mbRetry     |mrRetry
    mbIgnore    |mrIgnore
    mbAll       |mrAll
    mbNoToAll   |mrNotoAll
    mbYesToAll  |mrYesToAll
    --------------得点分数好不容易呀!