Google бесполезен для такого рода поисков, потому что вы получаете сотни миллионов результатов, абсолютно ни один из которых не относится к конкретному вопросу.
Вопрос заключается просто в следующем:
- Возможно ли иметь свойство Reference Class в 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 для выбора между типами подкласса, так как компонент не может напрямую ссылаться натипы подклассов ( Это просто невозможно в данном конкретном случае )
В любом случае ... заранее спасибо!