ateParams: Boolean;begin Result:=True;end; end.
另外,窗体继承不支持窗口嵌套,也就是不支持窗口的组合复用,因此为了扩充窗口的功能,无形中鼓励人们使用继承机制,而不是组合机制。这加深了窗口之间的偶合度,不利于灵活性
和扩展性。
窗体继承还有一个很大的问题就是它只支持窗口级别的组件复用,但是更多的时候,我们想要的只是粒度更小的界面中某一部分显示区域或者组件级别的复用。Borland也考虑到了这个问题,因此在Delphi4中给出了Component
Template的解决方案。
组件模版模板
组件模版模板技术相当简单,比如下图所示意的双列表框组合界面是很
常用的一类界面,可以用来从一个
列表框向另一个列表框移动对象。
那么我们就可以选择列表框和按钮,然后执行 Component | Create Component
Template...命令来创建组件模版模板,示意图如下:
设定组件模版模板名称为TDualListBox,并将其作为一个组件放到Templates组件面板上,组件面板除了能保存各个组件的属性外,还可以保存相关组件的事件代码。还有一点限制是它不能将窗体设定为组件模版模板。
生成好的组件模版模板可以象其它组件一样从组件面板上拖放到窗体,并生成模版副本。组件模版模板同VFI本质上的不同在于它不能实现继承,当把TDualListBox作为一个组件放到窗体上之后,它只相当于原来所有的组件的一个拷贝,我们可以随意地将一个按钮删除,而VFI的派生类则不允许我们删除从父类继承的组件。因此,组件模版模板不能算是一个面向对象的界面复用解决
方案,即便我们随后修改了组件模版模板的
设计,这些设计的变化并不会影响到先前的被实例化了的组件。因此可以认为,组件模版模板只是一个简化我们操作的复制