用showmessage就没有这个问题。
或者自己定义消息窗体,并用showmodal显示在showmodal的窗体之前

解决方案 »

  1.   

        也许是因为你把主窗体的formstyle 设为了总是在上面(always on top);
      

  2.   

    用API函数MESSAGEBOX好一点。showmessage太简单了。
      

  3.   

    TO:啊文
    主窗体的formstyle是Normal的
      

  4.   

    我用了Application.MessageBox但有时还是会出现在窗体的后面
      

  5.   

    在两个窗体form1,form2中我用了API函数messagebox()没有问题,不过我和上面仁兄的用法不同,我的用法为:MessageBox(handle,'这样用没有问题的!','相信我',MB_OK);其中handle为句柄,你可以为保险起鉴用form2.handle代替handle,这样绝对没有问题。但是你用在form1.handle代替handle,那你就惨了!! 
      

  6.   

     TO:SHYLSZ  问个问题:既然你看不到messagedlg对话框,你又怎么能肯定它已经出现在后面呢?或许根本就没有出现。 我也是初学者,但我试过用messagedlg并没有出现你那种问题。
      
      messagedlg的语法为:function messagedlg(const msg:string;atrype:tmsgdlgtype;
    abuttons:tmsgdlgbuttons; helpctx:longint):word;
    其中参数二是对话框的类型:即显示在对话框中的符号,有‘警告’,‘错误’,‘显示信息’,‘使用确定’,‘用户自定义类型’这几种。 参数三是对话框中要出现的按钮:集合类型, 参数四是在线帮助说明。如:messagedlg('你确信输入正确吗?',mtconfirmation,[mbyes,mbno],0); messagebox定义为: function messagebox(text,caption:pchar;flags:longint);integer;  其中第一个参数代表信息文字的内容,第二个参数代表对话框的标题, 第三个参数是一些常量的组合,可分为:出现按钮的组合,预设的缺省按钮,显示的图标,执行模式。 其中执行模式可取:1,mb_applmoda(应用程序未结束可切换到另一程序);2:mb_systemmodal(系统模式:先结束对话框,才能做其他事);3:mb_taskmodal(应用程序模式(同一)); 如:application.messagebox('你好,你确信输入正确吗?','程序提示',mb_yesno+mb_defbutton1+mb_iconstop+mb_applmodal));  把这些敲上去希望对你有所帮助,我想你用messagebox还出现问题也许可以从设置执行模式入手。