小弟写了如下代码:
if Application.MessageBox(pchar(mess), 'Question', MB_ICONQUESTION + MB_YESNO) = IDYES then
  begin
    enemystart(userdata);
    result := true;
  end
  else
    result := false;
  end;有时弹出提示框后就找不到了,把主窗口拖到一边后发现这个提示框在主窗口后面呢,
请问如何可以让这个弹出的提示框在主窗口的前面显示??

解决方案 »

  1.   

    MessageBox(0, 'ddd', 'ccc', MB_OK);
      

  2.   

    1.procedure ShowMessage(const Msg: string);
      单元:Dialogsor QDialogs
      例子:showmessage('hello');
    2.function MessageBox(const Text, Caption: PChar; Flags: Longint = MB_OK): Integer;
      单元:Forms
      例子:MessageBox('This should be on top.', 'Look', mb_OK)
      注:delphi的帮助文档提供的例子好像有误他的最后一个参数是[sbmok]
    3.function MessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Word;
      单元:Dialogsor QDialogs
      例子:if messagedlg('确定要退出吗?',mtwarnint,[mbyes,mbno],0)=mryes then close;
    4.int MessageBox(    HWND hWnd, // handle of owner window
        LPCTSTR lpText, // address of text in message box
        LPCTSTR lpCaption, // address of title of message box  
        UINT uType  // style of message box
       );
      单元:windows API
      例子:windows.messagebox(0,'标题','警告错误',MB_ICONSTOP);
      

  3.   

    有些象的,MessageBox是ShowModal的
      

  4.   

    我的主窗体的formstyle设为了fsStayOnTop
      

  5.   

    不要用Application.MessageBox,而用
    windows.MessageBox(Handle, ........);
                       //主窗体句柄
      

  6.   

    应该不会有问题啊。
    application.messagebox('aa','aa',mb_ok+mb_iconinformation);

    messagebox(0,'aa','aa',mb_ok+mb_iconinformation);
    是一个意思。
      

  7.   

    我的天 
    主窗体的formstyle设为了fsStayOnTop 这样当然显不出来了
      

  8.   

    我有遇到。
    在执行这句时刚好转到另一个程序的界面是极易出现,只有用alt+tab切换到Delphi程序才能将将对话框重后面显到前面来。