私有组件字段嵌套在Delphi框架中

时间:2016-09-15 08:30:24

标签: delphi components frames

这是Delphi组件和框架的快速比较,最后是我的问题。

Delphi的优势 组件

  • 它们封装得很好。使用组件的软件只能访问组件的publicpublished属性。
  • 所有内部事件处理程序都可以在父表单的设计时间使用。

Delphi 组件的缺点

  • 他们需要安装一些软件包
  • 即使内部组件是特定于应用程序的
  • ,也会在多个应用程序之间共享该程序包

优势德尔福框架

  • 它们可以像组件
  • 一样放在表单上
  • 他们的published属性也可以通过
  • 形式进行调整
  • 它们仅适用于应用内容,并且不适用于他们不属于的其他应用
  • 他们很快就可以买到。无需安装。

Delphi 框架的缺点

  • 所有内部组件都以父表单直接提供。如果我从published部分移动组件,设计时自定义也会在框架设计器中被破坏。
  • 如果我覆盖框架中的Resize方法,则所有安排仅在运行时可用。在设计时没有安排。
  • 如果我引入了新的published属性,则它在对象检查器中不可用。

我想拥有的东西是一个共生的东西:

  • 良好的封装。父表单中没有内部组件可用,但其所有内部组件在运行时或在设计时都具有完全功能。
  • 快速供货。无需安装。
  • 仅限应用内。不与其他应用共享。
  • 他们发布的属性可以通过
  • 形式进行调整
  • 所有方法覆盖(尤其是Resize方法)都可在设计时使用。

你能否提出符合这些要求的东西?或者可能是一些令人惊讶的方法来处理我不知道的帧?

它不一定是框架或组件。如果其他一些VCL课程满足这些要求,我将非常感激地接受它。

1 个答案:

答案 0 :(得分:3)

如果必须在设计器中编辑其属性,则对象必须是TComponent后代。 TFrame实际上是TComponent的后代。

不幸的是,对象检查器似乎只使用来自设计时包的结构信息。因此,您必须为自定义发布的属性编译设计时包,以便在对象检查器中显示。 但这符合您对快速可用性的要求。