德尔福,框架与形式.什么是多文档界面?

前端之家收集整理的这篇文章主要介绍了德尔福,框架与形式.什么是多文档界面?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
昨天我开始讨论“MDI vs tabbed interface”.我已经问过我是否应该继续开发基于MDI的应用程序,或者我应该将子表单嵌入到标签页中.
有人指出我应该使用TFrames ……我的问题是:为什么?

在TFrame上嵌入表单时使用TFrame的优点是什么?到目前为止我还不知道,切换只需要我重写代码的某些部分……

(无论如何,我不打算在设计时使用嵌入!)

提前致谢

解决方法

回答评论以提供使用框架的原因:

我认为框架是GUI的构建块,现有组件的设计时间组合到更高级的组件.在Delphi 5之前,人们会使用带有子控件的TCustomPanel后代,并将其注册为新组件,准备将其放到表单上.框架允许同样的事情,减少麻烦.

它们使您可以专注于开发您需要的功能,仅此而已.如果做得好,您可以将它们嵌入到选项卡控件页,模态或无模式对话框,MDI子框架和标准框架中.您甚至可以将其中的几个添加到一个表单中 – 这可能与嵌入表单无关.关键是,为了获得最大的可重用性,通常需要采用分层方法,并且框架有助于实现这一点.

框架适合从行进中嵌入.表单必须适应不显示标题栏和边框,通常会覆盖CreateParams()并相应地调整窗口样式.检查器中有很多表单属性,对嵌入表单没有意义.恕我直言,应该使用最基本和最通用的实体.表单不仅仅是用于嵌入的控件容器.

OTOH我不知道嵌入一个表单不会有嵌入框架的任何缺点.

编辑:

关于框架没有的OnCreate或OnShow等事件有评论.实际上,我认为帧的另一个优点是,因为事件处理程序没有参数,所以很多东西都必须在表单中进行硬编码.

考虑每用户设置的情况:在OnCreate中没有太多可用的信息,因此总是最终使用常量或INI文件部分的表单名称,这使得重用表单或者很难甚至不可能创建它的几个实例.另一方面,使用框架LoadSettings是一种显而易见的方法,它可以携带必要的参数.这样控制就返回到它所属的位置,返回到嵌入式框架/表单的容器.只有在可以从外部调整行为时才可以使用可重用性.

对于不是组件且需要进行生命周期管理的包含对象,例如AfterConstruction和BeforeDestruction.

猜你在找的Delphi相关文章