我正在开发从 TCustomControl 类派生的自定义组件。我想添加新的基于 TFont 的属性,可以在设计时编辑,例如在 TLabel 组件中。基本上我想要的是为用户添加更改字体的各种属性(名称、大小、样式、颜色等)的选项,而无需将这些属性中的每一个都添加为单独的属性。
我的第一次尝试:
class PACKAGE MyControl : public TCustomControl
{
...
__published:
__property TFont LegendFont = {read=GetLegendFont,write=SetLegendFont};
protected:
TFont __fastcall GetLegendFont();
void __fastcall SetLegendFont(TFont value);
...
}
编译器返回错误“E2459 Delphi 样式类必须使用 operator new 构造”。我也不知道我应该使用数据类型 TFont 还是 TFont*。在我看来,每次用户更改单个属性时创建新对象实例效率低下。我将不胜感激代码示例如何实现这一点。