Конференция "Компоненты" » Динамическое создание компонентов [D7]
 
  • Vidog (25.12.09 10:44) [0]
    Всем здравствуйте.

    Возник следующий вопрос:
    Каким образом можно создать любой компонент только по имени класса не пририбегая к 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;



    Заранее большое спасибо.
  • Медвежонок Пятачок © (25.12.09 10:56) [1]
    Каким образом можно создать любой компонент только по имени класса не пририбегая к RegisterClass(ClassName)?

    Каким образом можно создать класс, если код класса не прилинкован к итоговому exe, который пытается создать этот класс?
  • Vidog © (25.12.09 11:01) [2]
    Насколько я понимаю, придется проделать
    RegisterClass

    для всех классов, которые будут в будущем использоваться? =(
  • DimaBr © (25.12.09 12:01) [3]
    Правильно понимаете.
  • Дмитрий С © (07.01.10 01:20) [4]

    > Vidog ©   (25.12.09 11:01) [2]
    >
    > Насколько я понимаю, придется проделать RegisterClass для
    > всех классов, которые будут в будущем использоваться? =(

    А чего такой смайл, чего не так?
 
Конференция "Компоненты" » Динамическое создание компонентов [D7]
Есть новые Нет новых   [120277   +46][b:0][p:0.001]