已发布的属性未在设计器中显示
published properties not showing in designer
在以前的 Delphi 版本中,我的自定义表单显示了其已发布的属性。
但是,我 运行 遇到了 Delphi 10.2 Tokyo 的问题。具体来说,我没有看到调用 this post.
中的适当方法的好方法
综上所述,需要调用 RegisterCustomModule()
,但是,在 DesignIntf
描述的单元中 here,没有 TCustomModule
(有 TBaseCustomModule
和 TCustomModuleClass
,但是),基本自定义模块也继承自 TInterfacedObject
,而 TForm
没有(使用 FMX 作为我的框架)。
在最新版本 Delphi 中注册 FMX 表单以显示已发布属性的正确方法是什么?
uses DesignEditors;
type
TMySpecialForm = class(TCustomForm)
end;
RegisterCustomModule(TMySpecialForm, TCustomModule);
RegisterCustomModule
接受 2 个参数:ComponentBaseClass
和 CustomModuleClass
。第一个是您的自定义表单 class,当然,它会派生自 TCustomForm
。第二个是设计人员将使用的 class。这个 class 必须做两件事:从 TBaseCustomModule
派生(在 DesignIntf
单元中)并实现 ICustomModule
接口。看一下 DesignEditors
单元中的注释,大约在第 502 行。
TCustomModule
class 供您使用,如果您在设计时除了默认添加到您的自定义表单之外没有其他行为。
如果您确实希望在设计器中为您的表单设置某种自定义行为,例如,带有各种 属性 设置命令的弹出菜单,您可以创建自己的 TCustomModule
class:
uses DesignEditors;
type
TMySpecialFormDesigner = class(TCustomModule, ICustomModule)
function GetVerb(Index: Integer): string; override;
function GetVerbCount: Integer; override;
end;
RegisterCustomModule(TMySpecialForm, TMySpecialFormDesigner);
在以前的 Delphi 版本中,我的自定义表单显示了其已发布的属性。
但是,我 运行 遇到了 Delphi 10.2 Tokyo 的问题。具体来说,我没有看到调用 this post.
中的适当方法的好方法综上所述,需要调用 RegisterCustomModule()
,但是,在 DesignIntf
描述的单元中 here,没有 TCustomModule
(有 TBaseCustomModule
和 TCustomModuleClass
,但是),基本自定义模块也继承自 TInterfacedObject
,而 TForm
没有(使用 FMX 作为我的框架)。
在最新版本 Delphi 中注册 FMX 表单以显示已发布属性的正确方法是什么?
uses DesignEditors;
type
TMySpecialForm = class(TCustomForm)
end;
RegisterCustomModule(TMySpecialForm, TCustomModule);
RegisterCustomModule
接受 2 个参数:ComponentBaseClass
和 CustomModuleClass
。第一个是您的自定义表单 class,当然,它会派生自 TCustomForm
。第二个是设计人员将使用的 class。这个 class 必须做两件事:从 TBaseCustomModule
派生(在 DesignIntf
单元中)并实现 ICustomModule
接口。看一下 DesignEditors
单元中的注释,大约在第 502 行。
TCustomModule
class 供您使用,如果您在设计时除了默认添加到您的自定义表单之外没有其他行为。
如果您确实希望在设计器中为您的表单设置某种自定义行为,例如,带有各种 属性 设置命令的弹出菜单,您可以创建自己的 TCustomModule
class:
uses DesignEditors;
type
TMySpecialFormDesigner = class(TCustomModule, ICustomModule)
function GetVerb(Index: Integer): string; override;
function GetVerbCount: Integer; override;
end;
RegisterCustomModule(TMySpecialForm, TMySpecialFormDesigner);