0

在以前的 Delphi 版本中,我的自定义表单显示了它的已发布属性。

但是,我遇到了 Delphi 10.2 Tokyo 的问题。具体来说,我没有看到调用本文中找到的适当方法的好方法

总而言之,需要调用 to RegisterCustomModule(),但是,在此处DesignIntf描述的单元中,没有(虽然有和),基础自定义模块也继承自,但没有(使用 FMX 作为我的框架)。TCustomModuleTBaseCustomModuleTCustomModuleClassTInterfacedObjectTForm

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

4

1 回答 1

3
uses DesignEditors;

type
   TMySpecialForm = class(TCustomForm)
   end;


RegisterCustomModule(TMySpecialForm, TCustomModule);

RegisterCustomModule接受 2 个参数:ComponentBaseClassCustomModuleClass. 第一个是您的自定义表单类,它当然会从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);
于 2017-06-28T12:50:46.557 回答