【发布时间】:2012-02-21 05:42:56
【问题描述】:
Google 对这类搜索毫无用处,因为您会获得数亿条结果,其中没有一个与特定问题相关。
问题很简单:
- 是否可以在 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;
上面的代码编译得很好,但是 Object Inspector 根本没有显示 ObjectType 属性。
我在这里的目标(如果你还没有猜到的话)是做到这一点,以便我可以从特定的基类中选择一个类的后代,从而使相同的组件以不同的方式运行。
我想这样做,这样组件就不需要直接了解子类(它需要完全模块化)。
让我明确一点:我不能使用 Enum 在子类类型之间进行选择,因为组件不能直接链接到子类类型(根本不是在这种特殊情况下可能)
无论如何...提前致谢!
【问题讨论】:
-
对象检查器不显示该属性,因为它没有注册的属性编辑器。
标签: delphi oop properties reference fpc