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

Ваш аккаунт

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

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

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

Динмическое создание компонентов

51K
25 декабря 2009 года
Vidog
16 / / 25.12.2009
Всем здравствуйте.

Возник следующий вопрос:
Каким образом можно создать любой компонент только по имени класса не пририбегая к RegisterClass(ClassName)?

Вариант с RegisterClass:

Код:
var
  Pc: TPersistentClass;
  Ctrl: TControl;
begin
  RegisterClass(TButton);
  RegisterClass(TEdit);
 
  Pc := GetClass('TButton');
  if Pc <> nil then begin
    Ctrl := TControlClass(Pc).Create(Form1);
    Ctrl.Parent := Form1;
    (Ctrl as TButton).Caption := 'My button';
  end;
end;


Возможно ли просто:

 
Код:
var
  Pc: String;
  Ctrl: TControl;
begin
  Pc := 'TButton';
  Ctrl := ...Create(Form1);
  Ctrl.Parent := Form1;
  (Ctrl as TButton).Caption := 'My button';
end;


Заранее большое спасибо.
303
25 декабря 2009 года
makbeth
1.0K / / 25.11.2004
Нет.
А чем первый способ не устраивает?
51K
25 декабря 2009 года
Vidog
16 / / 25.12.2009
Классов потребуется очень много для динамического создания.. Ну что ж) Ладно
14
25 декабря 2009 года
Phodopus
3.3K / / 19.06.2008
Все же не очень понятно от чего вы тут хотите избавиться и почему. Можно малость хакнуть RTL, но стоит ли всего сопутствующего геммороя проблема?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог