4

我不断收到以下 DCC 错误,发布的字段“名称”不是以下类的类或接口类型。

  TGroup = class
    name:string[32]; <<<========================
    rwFeatures:TFeatures;
    roFeatures:TFeatures;
    levels:TLevels;   
  private

  public
    constructor Create;
    procedure Read(var f:file);
    procedure ReadOld(var f:file);
    procedure Write(var f:file);   
  end;

这是什么意思?

4

1 回答 1

5

该类是在启用Emit 运行时类型信息设置的情况下编译的。当使用运行时类型信息编译类时,默认可见性为published. 这意味着短字符串字段是published. 并且不允许发布短字符串字段。

文档说:

只有当它们是类或接口类型时,才能发布字段。

这是一个相当严格的要求。例如,这意味着您不能发布整数或布尔字段。

我怀疑这个限制是因为发布字段的主要用途是对象引用。想想表单上的组件。

使用以下选项之一解决问题:

  1. 不要发出此类的运行时类型信息。
  2. 使短字符串字段公开而不是发布。
  3. 使用属性而不是字段。
于 2012-12-18T20:57:30.323 回答