相关疑难解决方法(0)

类引用作为属性

谷歌对这些类型的搜索毫无用处,因为你得到了数亿个结果,绝对没有一个与特定问题有关.

问题很简单:

  • 是否可以在Delphi中使用类引用属性?
  • 如果是这样,怎么样?

这是我试过的......

type

  TMyObject = class
    // ...
  end;

  TMyObjectClass = class of TMyObject

  TMyObjectA = class(TMyObject)
    // specifics here
  end;

  TMyObjectB  =class(TMyObject)
    // specifics here
  end;

  TMyComponent = class(TComponent)
  private
    FObjectType: TMyObjectClass;
  published
    property ObjectType: TMyObjectClass read FObjectType write FObjectType;
  end;
Run Code Online (Sandbox Code Playgroud)

上面的代码编译得很好,但是Object Inspector根本没有显示ObjectType属性.

我的目标(如果您还没有猜到)是为了让我可以从特定基类中选择一个类后代,以使相同的组件以不同的方式运行.

我想这样做,以便组件不需要直接了解子类(它需要完全模块化).

让我说清楚一点:我不能使用Enum在子类类型之间进行选择,因为组件不能直接链接到子类类型(在这种特殊情况下根本不可能)

无论如何......提前谢谢!

delphi oop properties reference fpc

7
推荐指数
1
解决办法
1093
查看次数

标签 统计

delphi ×1

fpc ×1

oop ×1

properties ×1

reference ×1