在Delphi(XE)中注册自定义数据模块

问题描述 投票:2回答:2

我想将已发布的属性添加到Delphi XE中的DataModule,以便该属性显示在对象检查器中。我是基本的细节,但我仍然需要注册自定义模块(在设计时包中)。我能找到的所有帮助似乎都是指旧版本的Delphi。

我相信我需要在注册程序中使用如下所示的一行:

RegisterCustomModule(TMyForm,TDataModuleDesignerCustomModule);

但是,TCustomModuleClass类型的第二个参数的正确值不包括在内。

有任何想法吗?

delphi
2个回答
2
投票

如果您想要做的就是在Object Inspector中显示已发布的属性,那么根据我从Marco's book的理解,您可以将TCustomModule作为自定义模块类传递。它将显示所有已发布的属性。


1
投票

完整的示例和步骤来创建包含这些自定义注册类型的包:

unit YourCustomTypesReg;

interface

procedure Register;

implementation

uses
  DesignIntf,
  DesignEditors,
  YourUnit1,YourUnit2,YourUnit3;

type
   TCustomDataModule = TCustomModule;

procedure Register;
begin
   RegisterCustomModule (TYourClass1, TCustomDataModule );
   RegisterCustomModule (TYourClass2, TCustomDataModule );
   RegisterCustomModule( TYourClass3, TCustomDataModule );
end;

end.

添加到新的或现有的包中,如果是新包,请记住仅将Package的类型更改为Designtime,添加对designide.dcp的引用,以便找到DesignIntf​​和DesignEditors单元。

您可能需要将VCL添加到单元范围名称以使您的新包编译。

您可能还需要将Package和DCP和DCU输出文件夹设置为空白以外的其他文件夹,而不是任何其他软件包或应用程序,因此此软件包生成的dcus不会干扰任何其他人的软件包。

© www.soinside.com 2019 - 2024. All rights reserved.