我是一个delphi新手,最近我在写了一个mdi程序,在mianfrm上有一个toolbar控件,调用子窗体时,这个toolbar依然却在子窗体上,而子窗体本身是有一个toolbar控件的,有什么方法让主窗体上的toolbar不显示在子窗体上,我试过使它visible := false;,然而,当子窗体返回主窗体时,这个主窗体的toolbar不能显示,如果在子窗体单元上加入 uses mainfrm,然后在子窗体的onclose里面写入mian.toolbar.visible := ture;,这样在一定程序度可以解决问题,然而,主窗体引用了子窗体,而子窗体又引用了主窗体,这样不是很符合结构化的程序要求,有什么方法比我用的方法更合适吗.请高人指点一二.

解决方案 »

  1.   

    父窗体的工具栏已不适合子窗体的要实现的功能呀,子窗体需要独立的toolbar
      

  2.   

    如果需要分离的话,可以这样呀。。在主窗体上使用Actionlist的Update的功能来监控是否有子窗体,如果没有则显示主窗体的toolbar,如果有则显示子窗体的(这个应该很好实现的吧)至于子窗体的toolbar显示的时候,可以将toolbar Dock到主窗体上去。。例如你将toobar都机种在一个panel上。然后在创建子窗体的时候,将这个panel Dock到主窗体的一个控件内。。不过这样的架构感觉实在不怎么好呀。