gpt4 book ai didi

delphi - 嵌套在 Delphi 框架中的私有(private)组件字段

转载 作者:行者123 更新时间:2023-12-03 15:53:55 25 4
gpt4 key购买 nike

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

Delphi组件优点:

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

Delphi组件缺点:

  • 它们需要与某些软件包一起安装
  • 即使其中的组件是特定于应用程序的,该包也会在多个应用程序之间共享

Delphi框架优点:

  • 它们可以像组件一样放置在表单上
  • 它们的已发布属性也可以通过表单进行调整
  • 它们仅在应用内可用,不适用于它们不属于的其他应用
  • 它们很快就能提供。无需安装。

Delphi框架缺点:

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

我想要的是一种共生的东西:

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

您能建议一个满足这些要求的东西吗?或者可能是一些令人惊讶的方法来处理我不知道的框架?

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

最佳答案

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

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

关于delphi - 嵌套在 Delphi 框架中的私有(private)组件字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39506431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com