我现在要实现在关闭Form时,MessageDlg出现三个选择按钮,Yes、No和Cancel,我只能实现两个按钮的功能,请哪位大虾帮帮忙,帮我把下面的两个按钮实现的功能改为显示三个:procedure TForm_Main.FormClose(Sender: TObject; var Action: TCloseAction);
begin   if ( MessageDlg('是否保存信息?',mtConfirmation,[mbOk,mbCancel],0) = mrOK ) then
   begin
      Form_Main.TB_SaveClick(Self) ;
   end;   Action := caFree ;
end;我想实现的是:
     Yes:保存信息并Close
     No: 不保存Close
     Cancel:不保存也不Close多谢!

解决方案 »

  1.   

    var  a;wood;
    a:=MessageDlg('是否保存信息?',mtConfirmation,[mbOk,mbCancel],0) 
    case a do
    mbok:  .....
    mbcancel: .....
    mbno:.....
    end;
      

  2.   

    case Application.MessageBox('是否保存信息?','确认!', MB_YESNOCANCEL + MB_ICONQUESTION + MB_DEFBUTTON1) of
        MRYes ://保存
           
        MRNo ://不保存
        mrCancel: //取消
      end ;
      

  3.   

    var
     Reply:word;
    begin
    Reply:=MessageDlg('是否保存信息?',mtConfirmation,[mbOk,mbCancel,mbNo],0);
    if Reply=mrOk then
    begin
      Form_Main.TB_SaveClick(Self) ;
      action:=CaFree;
    end
    else if Reply=mrNo then
      action:=CaFree;
    else action:=caNone;
    end;
      

  4.   

    回复charles2118(第六元素) :    但是这样写信息确认窗口只显示两个按钮,Ok和Cancel。我试过将[mbOk,mbCancel]改为,[mbYes,mbNo,mbCancel],但是编译时通不过
      

  5.   

    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      case MessageDlg('保存信息?', mtConfirmation, [mbYes, mbNo, mbCancel], 0)  of
        mrYes:
          begin
            ShowMessage('save');
            Action := caFree;
          end;
        mrNo:
          begin
            ShowMessage('nosave');
            Action := caFree;
          end;
        mrCancel:
          begin
            Action := caNone;
          end;
      end;end;
      

  6.   

    回复Dingll():
        多谢了,问题解决了!马上结贴给分。希望以后能再得到你的帮助。
         cxz7531(cat) ,也多谢你了,不过Dingll先回答,所以我不能给分你了。希望以后能够得到你的帮助。