【发布时间】:2020-09-04 12:46:07
【问题描述】:
我创建了一个包含以下内容的组件:
TEditLine = class(TCustomControl)
strict private
FCaptionLabel: TLabel;
FUnitLabel: TLabel;
FEdit: TMyEdit;
end;
然后我开始通过创建相应的 getter/setter 对来传播嵌套组件的必要属性。
我突然想到,将这些嵌套组件本身作为只读属性发布可能会更容易,这样当一些新属性或方法被引入其中一个组件时,不需要更改容器组件接口:
TEditLine = class(TCustomControl)
strict private
FCaptionLabel: TLabel;
FUnitLabel: TLabel;
FEdit: TMyEdit;
published
property CaptionLabel: TLabel read FCaptionLabel;
property UnitLabel: TLabel read FUnitLabel;
property Edit: TMyEdit read FEdit;
end;
当我将组件放在表单上时,我会在 Object Inspector 中看到 CaptionLabel、UnitLabel 和 Edit,但我只能做到这些。
- 嵌套组件的属性不会保存到 DFM。
- 它们的事件在对象检查器中不可见。
这样做通常是个好主意吗?我如何解决上面列出的两个问题?
【问题讨论】:
标签: components delphi-xe5