VirtUX писал(а):Добавлено спустя 4 минуты 25 секунд:- Код: Выделить всё
var lobj: TParent; //по сути некоторый адрес
begin
lobj:= TChild.Create; //Выделили память для объекта с его методами
end;
далее где-то в обработчике:
TChild(lobj).show; //Вызываем дочерний метод (распределенный в памяти)
lobj.ParentMetoth; //Вызываем собственные методы
Ну вы всё правильно пишете но только для частного случая, у меня просто функция CreateClass вызывает конструкторы классов потомков TParent и возвращает эти объекты. Т.е. lobj:= TChild.Create; - это частный случай, CreateClass('имя класса') - общий, я туда передаю название класса потомка Tparent.
И поэтому потом я не знаю как вызвать метод потомка, т.к. у меня lobj класса TParent. Хотя когда идет отладка он TChild.
Но написать TChild(lobj).show я не могу , т.к какой конкретно класс сейчас я не знаю...
Можно конечно проверять ClassType и в соответствии с этим вызывать методы дочерних классов таким образом...