特定の質問にまったく関係のない何億もの結果が得られるため、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;
上記のコードは正常にコンパイルされますが、オブジェクト インスペクタにはObjectType
プロパティがまったく表示されません。
ここでの私の目的 (まだ推測していない場合) は、特定の基本クラスからクラスの子孫を選択して、同じコンポーネントを別の方法で動作させることができるようにすることです。
コンポーネントがサブクラスについて直接知る必要がないように、このようにしたいと思います(完全にモジュール化する必要があります)。
このビットを明確にさせてください:コンポーネントはサブクラスの型に直接リンクできないため、Enumを使用してサブクラスの型を選択することはできません(この特定のケースでは単に不可能です)
とにかく... よろしくお願いします!