DCC错误:发布的字段不是类或接口类型

ThN*_*ThN 4 delphi field interface class syntax-error

我在DCC错误后继续得到这个,发布的字段'name'不是以下类的类或接口类型.

  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;
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

Dav*_*nan 5

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

文件说:

仅当字段属于类或接口类型时才能发布字段.

这是一个非常严格的要求.例如,这意味着您无法发布整数或布尔字段.

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

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

  1. 不要为此类发出运行时类型信息.
  2. 使短字符串字段公开而不是发布.
  3. 使用属性而不是字段.