窗体中有A,B,C,D 4个form
A _Showmodal C
B _Showmodal D就是
A ShowModal C窗体,C窗体只用于A窗体,
B ShowMdaol D 窗体,D窗体只作用于B窗体,并且AB窗体可互相切换

解决方案 »

  1.   

    QQ的不是ShowModal吧.ShowModal的话,就不能换到别的窗口了.
    你试试将Form的Style 设为fsStayOnTop.能不能达到你要的效果呢?
      

  2.   

    重载对话那个窗体的CreateParams方法:
      protected
      procedure CreateParams(var Params:TCreateParams);override;
    ...procedure Tfrm_SendMsg.CreateParams(var Params: TCreateParams);
    begin
      inherited CreateParams(Params);
      Params.WndParent := GetDesktopWindow;
    end;
      

  3.   

    如果置于最前的FORM间需要切换的话,StayOnTop应该是比较方便的吧
      

  4.   

    不用ShowModal,
    直接DisableWindows就行了.ShowModal也是这个原理,它Disable了所有的窗口,除了它自己
      

  5.   

    将Form的Style 设为fsStayOnTop应该可以满足你的要求了
      

  6.   

    差不多搞定了,不用ShowModal
    A Show C
    B Show D分别在A窗体的FormActivate事件里
      if c.Showing then
      begin
        c.BringToFront;
      end;分别在B窗体的FormActivate事件里
      if d.Showing then
      begin
        d.BringToFront;
      end;