我创建了一个包含以下内容的组件:
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;
当我把组件放到表单上时,我在objectinspector中看到了CaptionLabel、UnitLabel和Edit,但这就是我所能做到的。
-
嵌套组件的属性不会保存到DFM。
-
它们的事件在对象检查器中不可见。
一般来说这样做是个好主意吗?我如何解决上面列出的两个问题?