Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Создание объектов по названию класса

46K
07 октября 2010 года
nILruM
30 / / 10.02.2010
Как можно создать объект по названию класса? При этом не используя фабричный способ. Объекты наследуются от TComponent.
1.9K
07 октября 2010 года
George22
91 / / 09.12.2007
Цитата: nILruM

При этом не используя фабричный способ.



Это как это?

46K
07 октября 2010 года
nILruM
30 / / 10.02.2010
Цитата: George22
Это как это?


ну что то типо этого:

 
Код:
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);
}
14
07 октября 2010 года
Phodopus
3.3K / / 19.06.2008
см. в сторону RegisterClass()/FindClass()
46K
08 октября 2010 года
nILruM
30 / / 10.02.2010
Сделал вот так..

 
Код:
RegisterClass(__classid(TButton));
TMetaClass* BufMeta=FindClass("TButton");
TComponent *But = NULL;
Application->CreateForm( BufMeta, &But);
((TControl*)But)->Parent=this;


Но опять приходится передавать в RegisterClass тип, а не его название.
5
08 октября 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: nILruM

Но опять приходится передавать в RegisterClass тип, а не его название.


Это не .NET или Java, где все имена классов знает рантайм. Подругому не получится.

240
08 октября 2010 года
aks
2.5K / / 14.07.2006
Или делать большой свич по именам классов, или заранее забить их в мапу. =)
Только костыль это.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог