做一个进销存的数据库,发现这个工程会有很多窗体.而且类似的窗体都会非常多.  
 
如果使用继承的话,会就产生大量的窗体类.可能80个.如果做大型工程,几百个窗体类都有可能出现.非常的可怕...  
 
于是,我想出了一种笨办法,把数据控件都放在一个个TPanel中,这些Panel放在一个临时窗体A里,然后新建并打开另一个要显示的窗体(叫模板窗体),再把TPanel.Panel设为模板窗体,这样来贴成新窗体来动态显示.  
 
这样,大量相似的窗体,我不用派生,只要一个窗体+临时窗体A+Tpanels就搞定了.  
 
但是问题又来了:  
1.工程越来越大时,这些TPanel越来越多,反而越来越不好维护.  
2.而且使用这种方式要比派生窗体多写额外的代码.  
3.如果要在这些Tpanel中写一点代码,会相当麻烦,倒不如直接使用派生窗体的方式.
4.临时窗体A的东西越来越多时,会而很占内存空间,而继承的话可以动态建立,没有这个缺点.
 
后悔呀,发现这种笨办法除了减少窗体类的个数外,一点好处也没有,相反还添加了不少的麻烦.但如果用派生窗体做,几百个窗体类也不奇怪了..  
 
 
各位大虾,遇到这个情况,你们是如何去做呢?

解决方案 »

  1.   

    刚开始写程序时的老毛病,害怕窗体多,呵呵。
    用窗体继承,然后分模块,使用Dll,这样每个Dll里面的窗体就很少了,一般每个模块的窗体不会超出2、30个。
      

  2.   

    用Frames啊,可以将类似的界面做成Frame.xxmmmx(踢踏) 是对的,对于大型系统,不用窗体继承是不可能的。而且DLL是好东西啊,实在不想用DLL,用BPL也行啊
      

  3.   

    是呀,我要解决的是窗体太多的问题.眼睛都看花了.
    如果使用DLL的话,显示有模式窗体是一件多痛苦的事,要传递application句柄.真不爽.
    其实我的想法并不是认为工程运行时太占内存和EXE文件生成太大,而是最好能使这些窗体按功能来分组.这样在查找时就比较好找一点.