Re: Создать новый экземпляр класса
От: awod Россия  
Дата: 16.04.06 06:29
Оценка:
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;
С уважением AWOD.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.