Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Создание объекта


Автор: chip_and_dayl 28.11.2011, 14:28
Всем привет.

Есть вопрос. Можно как-то сделать следующее

Код

function CreateObject(str: string): TObject;
begin
   result:=str.Create;
end;


вызов
CreateObject('TList');
CreateObject('TObjectList');

Автор: MetalFan 28.11.2011, 15:08
chip_and_dayl, простым способом - нельзя. Но подозреваю, что с помощью rtti таки можно...

Автор: Dik0n 28.11.2011, 16:34
chip_and_dayl, А обязательно из строки создавать ?
Может такой вариант пойдет.
Код

function CreateObject(Obj: TClass): TObject;
begin
  Result := Obj.Create;
end;

CreateObject(TList);
CreateObject(TObjectList);

Автор: chip_and_dayl 28.11.2011, 17:07
Цитата(Dik0n @  28.11.2011,  16:34 Найти цитируемый пост)
А обязательно из строки создавать ?

Да. У меня строки будут хранится в базе, а классы будут создаваться уже по ходу

Тогда остается банальный if

Автор: MetalFan 28.11.2011, 17:57
Вот, почитайте. Если используется современная IDE (2010,XE), то пригодиться.
http://delphi2010.ru/?p=166
Так что создание экземпляра класса по его названию вполне реальная весчь)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)