TComponent* CreateClass(String NameClass)
{
if(NameClass=="TCheckBox")return new TCheckBox(this);
if(NameClass=="TEdit")return new TEdit(this);
if(NameClass=="TMemo")return new TMemo(this);
}
Создание объектов по названию класса
Как можно создать объект по названию класса? При этом не используя фабричный способ. Объекты наследуются от TComponent.
Цитата: nILruM
При этом не используя фабричный способ.
Это как это?
см. в сторону RegisterClass()/FindClass()
Код:
RegisterClass(__classid(TButton));
TMetaClass* BufMeta=FindClass("TButton");
TComponent *But = NULL;
Application->CreateForm( BufMeta, &But);
((TControl*)But)->Parent=this;
TMetaClass* BufMeta=FindClass("TButton");
TComponent *But = NULL;
Application->CreateForm( BufMeta, &But);
((TControl*)But)->Parent=this;
Но опять приходится передавать в RegisterClass тип, а не его название.
Цитата: nILruM
Но опять приходится передавать в RegisterClass тип, а не его название.
Это не .NET или Java, где все имена классов знает рантайм. Подругому не получится.
Только костыль это.