if MessageBox(Handle,'确定要关闭此窗口吗?现在查到的信息下次打开是将不会显示!', '请确认!',
        MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON2)=IDYES then
        frmfindcar.Close;
这个对话框怎么点是或否窗口都关闭?MessageBox到底该怎么用?我初学,请高手详细指点啊!

解决方案 »

  1.   

    IDYES没错,你的程序也看不出什么错误来,你再仔细检查一下别的部分的程序。
      

  2.   

    看不出有問題, 也許你可改為
    Windows.MessageBox
    試下
      

  3.   

    begin  
    if MessageBox(Handle,'确定要关闭此窗口吗?现在查到的信息下次打开是将不会显示!', '请确认!',
            MB_YESNO + MB_ICONQUESTION +MB_DEFBUTTON2)=ID_YES then
      begin
        with adoquery1 do
        begin
          close;
          sql.Clear;
          sql.Add('delete * from tmpcar');
          execsql;
        end;
      frmfindcar.VaComm1.Close;
      frmfindcar.Close;  end;
    end;
    这是我的原程序,MB_ICONQUESTION +MB_DEFBUTTON2是什么意思?
      

  4.   

    MB_ICONQUESTION +MB_DEFBUTTON2的意思是显示一个“问号”的图标,并把默认焦点
    设在第二个按钮上。
    从你这段程序还是看不出有什么错误来。
      

  5.   

    你不会把这段程序放在窗体的OnClose里面吧?
      

  6.   

    实在不行,试试这个:
    IF MessageDlg('确定要关闭此窗口吗?现在查到的信息下次打开是将不会显示!请确认!',mtConfirmation,[mbYes,mbNo],0)=mrYes then frmfindcar.Close;
      

  7.   

    zzlingaaa(小舟) ,我确实放在onclose事件中了,有什么要紧的吗?
     youcheng1(晓松) ,怎么放在closequery中?
      

  8.   

    "我确实放在onclose事件中了,"
    你放到onclose里还那样处理,当然都关了。if MessageBox(Handle,'确定要关闭此窗口吗?现在查到的信息下次打开是将不会显示!', '请确认!',
            MB_YESNO + MB_ICONQUESTION +MB_DEFBUTTON2)=ID_YES then
      begin
        with adoquery1 do
        begin
          close;
          sql.Clear;
          sql.Add('delete * from tmpcar');
          execsql;
        end;
      frmfindcar.VaComm1.Close;
      end
      else
        action:=canone;
    end;
      

  9.   

    if application.MessageBox('确定要撤消订单吗?','提示',mb_okcancel+mb_iconstop)=idcancel then exit;
      

  10.   

    晕~~~你放在onclose中,程序执行完后无论如何都是要关闭的。
    放在onclosequery中
    begin  
    if MessageBox(Handle,'确定要关闭此窗口吗?现在查到的信息下次打开是将不会显示!', '请确认!',
            MB_YESNO + MB_ICONQUESTION +MB_DEFBUTTON2)=ID_YES then
      begin
        with adoquery1 do
        begin
          close;
          sql.Clear;
          sql.Add('delete * from tmpcar');
          execsql;
        end;
      frmfindcar.VaComm1.Close;
      result:=true;//关闭窗口  end;
    result:=false;//不关闭窗口。
    end;
      

  11.   

    wind8bell(风之铃) ,onclosequery合onclose有什么区别?
    flyforlove(为情飞) ,action:=canone;是什么意思?
    另外,我的程序里MessageBox(Handle……)handle是什么意思?
      

  12.   

    caNone The form is not allowed to close, so nothing happens.
    caHide The form is not closed, but just hidden. 
              Your application can still access a hidden form.
    caFree The form is closed and all allocated memory for the form is freed.
    caMinimize The form is minimized, rather than closed.Handle是句柄,可以用application.messagebox(),就不需要你自己填写handle.
      

  13.   

    var
     IDReturn:integer;
    begin
      IDReturn:=MessageBox(self.Handle,#32#32#32#32#32#32+'退出管理系统!'+#32#32#32#32#32#32,'系统信息',MB_YESNO);
      if IDReturn=IDYES then
        CanClose:=true;
      if IDReturn=IDNO then
        CanClose:=false;
    end;
      

  14.   

    procedure TFrmmain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    var
     IDReturn:integer;
    begin
      IDReturn:=MessageBox(self.Handle,#32#32#32#32#32#32+'退出管理系统!'+#32#32#32#32#32#32,'系统信息',MB_YESNO);
      if IDReturn=IDYES then
        CanClose:=true;
      if IDReturn=IDNO then
        CanClose:=false;
    end;
      

  15.   

    呵呵,“楼上那位大哥”的代码就是放在CloseQuery事件中的,你可以将其中的
    CanClose:=true; 用begin...end;括起来,并在begin后添加你自己的处理代码。
    (其中的#32代表空格字符,就如同#13代表回车符一样。那位大哥可能是想把提示的
    信息在对话框中水平居中:)
      

  16.   

    呵呵,这不是messagebox的问题啊