各位同仁,最近一个有关窗体显示问题,困扰了我N久,原以为很简单,其实不然。
问题:
     我有三个窗体,第一个为主窗体,第二个为子窗体,第三个也是子窗体,第二个窗体显示时要在主窗体上面,也就是说一直要保持在主窗体上面,关键在于第三个窗体,第三个窗体显示时要在最上面,也就是说要在所有窗体的上面,三个窗体都不是模式窗体。这个怎么实现?难度不小吧?

解决方案 »

  1.   

    我先顶一下!!!!!!!!!!!!!!兄弟们,拿出你的本事来吧!!!!呵呵。如果要讨论可以加我的QQ:21807613,本人最欢迎DELPHI的编程爱好者。
      

  2.   

    第一个为主窗体(主窗体),第二个为子窗体(子窗体1),第三个也是子窗体(子窗体2)
    首先:子窗体如果不最小化或关掉,子窗体都会在主窗体上面,这个应该没问题吧,子窗体1在主窗体上就没有问题了。
    剩下的就是子窗体2的问题:你需要的就是要放在最前面(BringToFront),如果我没有理解错的话,你的问题就是子窗体1在Active的状态下,子窗体2就在后面了,如果是这样,你可以在子窗体1的Active事件中把子窗体2放到最前面(BringToFront,当能要你判断一下子窗体2是否存在,因为不知道你的具体创建和调用过程,自己在写写吧。)你试试吧。
      

  3.   

    楼上的兄弟,我的三个窗体并不是MDI窗体哦。这样子行吗?第一个窗体要在主窗体之上,只能设置fsStayOnTop属性吧?然后如果我把第二个子窗体也设这个属性的话,就达到到在最前面的效果了。
      

  4.   

    我的却误解你的窗体是MDI的,如果不是,我觉得你可以在每个窗体得Active事件中判断其他窗体的存在,在控制你要的窗体效果,不要用fsStayOnTop属性去做。用BringToFront可以控制。
    我觉得不会有什么问题。你再想想。
      

  5.   

    不知CSDN是没有高手还是大家看到这个标题,以为很简单,不进来,真晕哦。
      

  6.   

    答案:
    http://kingron.delphibbs.com/dispbbs.asp?boardid=6&id=565