If Application.MessageBox('实收金额为0,确认保存该单?','提示',MB_OKCANCEL+MB_DEFButton2+MB_ICONQUESTION)=IDcancel Then
          exit;本意是希望弹出对话框,默认为第2个按钮(取消),可每次程序运行第一次时,焦点总是默认在第一个按钮上,以后就正常,调试了几天都这样,
实在没办法,就自己做一个表单,模拟这个函数,该表单上只有2个按钮,一个label,无论我是先添加哪个按钮,结果都是程序第一次运行时,默认为确定按钮,以后均正常,NND,折腾了几天了,

解决方案 »

  1.   

    to: hthunter(核桃-我的心在下雨,雨中我和她携手漫步) 
    我用的是D版7.0,没有打任何补丁,有关系吗?
      

  2.   

    有兴趣试试一下Application.MessageBox('sass','提示',32) //33..100...if Application.MessageBox('sass','提示',33)=1 then
      ....
      

  3.   

    to: azsoft(Try my best) ( )
    试了不行,
    Application.MessageBox('sass','提示',32):只出现一个确认按钮
    Application.MessageBox('sass','提示',32):只出现2个按钮,默认还是确定
      

  4.   

    请问DELPHI7.0有补丁吗?哪里可以下载?
    还有什么语句可以实现类似功能?
      

  5.   

    你要是想有保障,再把KeyPress写一下:
    procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
    begin
      if Key = #13 then  btnCancel.Click;
    end;
      

  6.   

    刚才发现~如果前面加一条无用的messagebox语句,就正常
    没有就不正常
      

  7.   

    我试了你的代码却没有你说的问题,不过你可以把代码改成下面这样。  If windows.MessageBox(Handle,'实收金额为0,确认保存该单?',
      '提示',MB_OKCANCEL+MB_DEFButton2+MB_ICONQUESTION)=IDcancel Then
              exit;
      

  8.   

    If Application.MessageBox('实收金额为0,确认保存该单?','提示',MB_OKCANCEL+MB_DEFButton2+MB_ICONQUESTION)=IDcancel Then
              exit;
    在我的系統上測試通過,沒問題哦!
      

  9.   

    if Application.MessageBox(pchar('确定要删除项:'+edit1.text),'系统提示',mb_yesno) = idno then
             exit;