Показать сообщение отдельно
  #1  
Старый 21.10.2012, 23:47
StoxFT StoxFT вне форума
Прохожий
 
Регистрация: 21.10.2012
Сообщения: 2
Репутация: 10
По умолчанию Динамическое создание компонентов

Доброго времени суток, знатоки. Собственно сабж:
Есть тип:
Код:
TListClass = array [ 0..3 ] of TControlClass;
Есть константа:
Код:
ListClass : TListClass  = (TEdit , TButton , TCheckBox , TLabel);
Есть функция:
Код:
function TForm1.RuntimeCompCreate(Tag: Array of Variant; CType: Integer): Boolean;
var
  TypeClass : TControlClass;
  New       : TControl;
begin
  if (CType >= 0) then begin
    TypeClass := TControlClass(ListClass[CType]);
    New := TypeClass.Create(Self);
    With New do begin
      Parent   := Form1;
      Left     := Tag[0];
      Top      := Tag[1];
      Height   := Tag[2];
      Width    := Tag[3];
      Name     := Tag[4];
    end;
      if TypeClass = TEdit then begin
        (New as TEdit).TextHint := Tag[5];
        (New as TEdit).Text := Tag[6];
      end;
      if TypeClass <> TEdit then begin
        Caption := Tag[5];
      end;
  end;
end;

При компилировании ругается на блок кода с присвоениями от Tag[0] до Tag[4], ошибка: [DCC Error] Unit1.pas: E2016 Array type required;
Мозг кипит, подскажите пожалуйста, где мои кривые руки ошиблись? Заранее благодарен.)
Ответить с цитированием