lmikle прав.
Вот эту конструкцию:
Код:
With New do begin
Parent := Form1;
Left := Tag[0];
Top := Tag[1];
Height := Tag[2];
Width := Tag[3];
Name := Tag[4];
end;
компилятор видит так:
Код:
New.Parent := Form1;
New.Left := New.Tag[0];
New.Top := New.Tag[1];
New.Height := New.Tag[2];
New.Width := New.Tag[3];
New.Name := New.Tag[4];
Т.е. пытается использовать не параметр Tag, а свойство TControl.Tag, которое естественно не является массивом.
Переименуй параметр Tag, а ещё лучше вообще не используй конструкцию with - это потенциальный источник различных недоразумений и непонятных глюков.
И ещё не используй в методах формы глобальную переменную Form1 (и т.п.) - используй вместо этого переменную Self.