Delphi 已发布的属性未显示在设计器中

Delphi 已发布的属性未显示在设计器中,delphi,firemonkey,delphi-10.2-tokyo,Delphi,Firemonkey,Delphi 10.2 Tokyo,在Delphi的早期版本中,我的自定义表单显示了其发布的属性 但是,我遇到了Delphi10.2东京版的问题。具体地说,我没有看到调用中找到的适当方法的好方法 总之,需要调用注册表自定义模块(),但是,在所描述的DesignIntf单元中,没有TCustomModule(有TBaseCustomModule和TCustomModuleClass),基本自定义模块也继承自TInterfacedObject,而TForm没有(使用FMX作为我的框架) 在最新版本的Delphi中注册FMX表单以显示已

在Delphi的早期版本中,我的自定义表单显示了其发布的属性

但是,我遇到了Delphi10.2东京版的问题。具体地说,我没有看到调用中找到的适当方法的好方法

总之,需要调用注册表自定义模块(),但是,在所描述的
DesignIntf
单元中,没有
TCustomModule
(有
TBaseCustomModule
TCustomModuleClass
),基本自定义模块也继承自
TInterfacedObject
,而
TForm
没有(使用FMX作为我的框架)

在最新版本的Delphi中注册FMX表单以显示已发布属性的正确方法是什么

uses DesignEditors;

type
   TMySpecialForm = class(TCustomForm)
   end;


RegisterCustomModule(TMySpecialForm, TCustomModule);
RegisterCustomModule
接受两个参数:
ComponentBaseClass
CustomModuleClass
。第一个是自定义表单类,当然,它将从
TCustomForm
派生。第二个类将由设计器使用。这个类必须做两件事:从
TBaseCustomModule
(在
DesignIntf
单元中)派生并实现
ICustomModule
接口。查看
DesignEditors
单元中第502行附近的注释

如果除了在设计时添加到自定义表单的默认行为之外,没有其他行为,则提供了
TCustomModule
类供您使用

如果您确实希望在设计器中为窗体创建某种自定义行为,例如,一个带有各种属性设置命令的弹出菜单,您可以创建自己的
TCustomModule
类:

uses DesignEditors;

type
    TMySpecialFormDesigner = class(TCustomModule, ICustomModule)
        function GetVerb(Index: Integer): string; override;
        function GetVerbCount: Integer; override;
    end;

RegisterCustomModule(TMySpecialForm, TMySpecialFormDesigner);
RegisterCustomModule
接受两个参数:
ComponentBaseClass
CustomModuleClass
。第一个是自定义表单类,当然,它将从
TCustomForm
派生。第二个类将由设计器使用。这个类必须做两件事:从
TBaseCustomModule
(在
DesignIntf
单元中)派生并实现
ICustomModule
接口。查看
DesignEditors
单元中第502行附近的注释

如果除了在设计时添加到自定义表单的默认行为之外,没有其他行为,则提供了
TCustomModule
类供您使用

如果您确实希望在设计器中为窗体创建某种自定义行为,例如,一个带有各种属性设置命令的弹出菜单,您可以创建自己的
TCustomModule
类:

uses DesignEditors;

type
    TMySpecialFormDesigner = class(TCustomModule, ICustomModule)
        function GetVerb(Index: Integer): string; override;
        function GetVerbCount: Integer; override;
    end;

RegisterCustomModule(TMySpecialForm, TMySpecialFormDesigner);

谢谢Dave,我理解这些要求,但我不知道TCustomModule类是在DesignEditor单元中声明的。另外,请欣赏这个示例。谢谢Dave,我理解这些要求,但我不知道TCustomModule类是在DesignEditor单元中声明的。另外,请欣赏这个例子。