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