form1里可以show form2出来而form2里override CreateParams 过程
procedure TForm2.CreateParams(var cp:TCreateParams);
begin
     inherited;
     cp.WndParent:=0;
end;
使得form2在taskbar上显示出来;form2可以 ShowModal form3出来,
但只要form3.ShowModal;就会使form2藏起来,form3 show 出来,
如果电击在taskbar的form2,form2就出来了,再点form2,form2就藏起来,
form3 在最前段我最不理解的地方就是,form2 showmodal form3时, form2为什么要藏起来(至少是藏在form1之下),而不是,form3在form2上面,点form2没有用,仍是form3在最上面,就像只有两个form时的那样。请指点!

解决方案 »

  1.   

    form2 showmodal form3时,form2就不能得到焦点了;
      

  2.   

    窗体有两种形式:模态和非模态。模态窗体是一直显示在最前面的,除非窗口关闭,而非模态则可以任意浮动,可前可后。
    用SHOW()方法调用的窗体是非模态的,用SHOWMODAL()方法调用的是模态窗口。
      

  3.   

    form2是可以在form1上或者下的,
    本来form2在form1上,但当form2 showmodal form3后,form2就到form1之下了。
    就好象form3是form1 showmodal 出来的样子,form1也不能获得焦点了我希望看到的是,form1 show出来 form2后,form2在 form1上,然后当form2 showmodal form3后,form3在form2上,form2不能被激活, form1仍可以获得焦点。我想是不是在form2.createParams(...)里改一些东西
      

  4.   

    晕,只要一showmodal,那么整个程序里的窗口都不能获得焦点,除了那么showmodal窗口之外!
      

  5.   

    showmodal就是模态窗口,只能显示在最顶上,直到析构!
      

  6.   

    窗体有两种形式:模态和非模态。模态窗体是一直显示在最前面的,除非窗口关闭,而非模态则可以任意浮动,可前可后。
    用SHOW()方法调用的窗体是非模态的,用SHOWMODAL()方法调用的是模态窗口。
      

  7.   

    你试一试ShowMessage('a');看一看效果你再决定你是否还要解决这个问题
      

  8.   

    上次我写的:“form1仍可以获得焦点”有点问题。应该是当form3 被showmodal后,form1 不能再获得焦点。
    我在叙述一边,我希望的是,当form2将form3 showmodal 后,form2仍在form1之上,而不是跑到form1之下了(在form3之下是当然的)。
    此时,在taskbar上显示的form1,form2, 当点form2时,form2和form3都显示出来,form2在form3下。举个实际的例子:打开foxmail,点撰写新邮件后,现在taskbar上有两个form: foxmail, “写邮件”,  然后点写邮件的form里的选项-〉编辑器属性。  属性页就被showmodal 出来。
      

  9.   

    re一把,
    如果关注这个问题,请帮我re一把
      

  10.   

    我想知道答案
    http://expert.csdn.net/Expert/topic/1679/1679372.xml?temp=.8981897