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;
Динмическое создание компонентов
Возник следующий вопрос:
Каким образом можно создать любой компонент только по имени класса не пририбегая к RegisterClass(ClassName)?
Вариант с RegisterClass:
Код:
Возможно ли просто:
Код:
var
Pc: String;
Ctrl: TControl;
begin
Pc := 'TButton';
Ctrl := ...Create(Form1);
Ctrl.Parent := Form1;
(Ctrl as TButton).Caption := 'My button';
end;
Pc: String;
Ctrl: TControl;
begin
Pc := 'TButton';
Ctrl := ...Create(Form1);
Ctrl.Parent := Form1;
(Ctrl as TButton).Caption := 'My button';
end;
Заранее большое спасибо.
А чем первый способ не устраивает?
Классов потребуется очень много для динамического создания.. Ну что ж) Ладно
Все же не очень понятно от чего вы тут хотите избавиться и почему. Можно малость хакнуть RTL, но стоит ли всего сопутствующего геммороя проблема?