SA>Привет.
SA>Пусть есть базовый класс и наследники от него. На вход функции дается объект (как базовый класс). Как в функции создать новый объект того класса что и данный на входе объект?
SA>Можно завести у базового класса метод типа MakeCopy, но может можно и без этого обойтись? Нужно ковыряться с NewInstance?
А может базовый класс сделать наследником TPersistent и регестрировать каждый класс через RegisterClass.
Сделать TBaseClass = class of TBase;
Тогда можно будет воспользоваться
var
tmpClass : TClass;
begin
tmpClass := GetClass(ASomeInClass.ClassName);
if tmpClass <> nil then
tmpFrame := TBaseClass(tmpClass).Create(some parameters)
end;