在以前版本的Delphi中,我的自定义表单显示了已发布的属性。
但是,我遇到了Delphi 10.2 Tokyo的问题。具体来说,我没有看到调用this post中找到的适当方法的好方法。
总结一下,需要拨打RegisterCustomModule()
,但在DesignIntf
所述的here单元中,没有TCustomModule
(TBaseCustomModule
但是,基本自定义模块也继承自TCustomModuleClass
,而TInterfacedObject
没有(使用FMX作为我的框架)。{}}和TForm
。
注册FMX表格以在最新版本的Delphi中显示已发布属性的正确方法是什么?
答案 0 :(得分:2)
uses DesignEditors;
type
TMySpecialForm = class(TCustomForm)
end;
RegisterCustomModule(TMySpecialForm, TCustomModule);
RegisterCustomModule
有2个参数:ComponentBaseClass
和CustomModuleClass
。第一个是您的自定义表单类,当然,它将派生自TCustomForm
。第二个是设计师将使用的类。这个类必须做两件事:从TBaseCustomModule
派生(在DesignIntf
单元中)并实现ICustomModule
接口。请查看第{502行附近DesignEditors
单元中的评论。
如果您没有在设计时添加到自定义表单的默认行为,则提供TCustomModule
类供您使用。
如果你想在设计师中想要某种形式的自定义行为,比如一个带有各种属性设置命令的弹出菜单,你可以创建自己的TCustomModule
类:
uses DesignEditors;
type
TMySpecialFormDesigner = class(TCustomModule, ICustomModule)
function GetVerb(Index: Integer): string; override;
function GetVerbCount: Integer; override;
end;
RegisterCustomModule(TMySpecialForm, TMySpecialFormDesigner);