Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рефлексия в Delphi 
:(
    Опции темы
Etar
  Дата 29.7.2009, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 21.2.2008

Репутация: нет
Всего: 1



Привет!

Есть простая ситуация:
На Form1 лежат Edit1, Edit2, Edit3 и Button1.
Edit1.Text = 'TLabel'
Edit2.Text = 'Caption'
Edit3.Text = 'Test'
Нужно чтобы по нажатию на Button1 создавался объект класса <Edit1.Text>, после чего его свойству <Edit2.Text> присваивалось бы значение <Edit3.Text>.

Как это сделать, кроме как явно проверять Edit1.Text на соответствие 'TLabel', Edit2.Text на соответствие 'Caption' и так далее, чтобы потом выполнить соответствующий этому условию код?

PM MAIL   Вверх
Alexeis
Дата 29.7.2009, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Код

procedure TForm1.FormCreate(Sender: TObject);
var
  cntrl : TControl;
  l : TLabel;
  s : AnsiString;
begin
  Edit1.Text := 'TButton';
  RegisterClass(TButton);
  cntrl := TControlClass(FindClass(Edit1.Text)).Create(Form1);
  cntrl.Parent  := Form1;
  cntrl.Visible := true;
  s := 'Button1';
  cntrl.Perform(WM_SETTEXT, 0, Integer(PChar(s)));
  cntrl.Left    := 100;
  cntrl.Top     := 100;
end;



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Etar
  Дата 29.7.2009, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 21.2.2008

Репутация: нет
Всего: 1



RegisterClass(TButton);
и
TControlClass(FindClass(Edit1.Text)).Create(Form1);
это гуд

а вот как бы еще также нехитро со свойствами разобраться? smile 
PM MAIL   Вверх
Shaggy
Дата 29.7.2009, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 2.5.2007
Где: г.Ижевск

Репутация: 3
Всего: 5



Цитата(Etar @  29.7.2009,  16:43 Найти цитируемый пост)
а вот как бы еще также нехитро со свойствами разобраться?

SetStrProp(cntrl,'Caption','Test');
PM MAIL ICQ   Вверх
Alexeis
Дата 29.7.2009, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Shaggy, ток там еще uses typinfo.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0816 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.