我试图以编程方式创建一些控件但它根本不起作用。我举了一个例子,我尝试创建11个编辑组件并将标签顺序设置为从头到尾。
procedure CreateControls;
var
TabOrder: Integer;
UniEdit: TEdit;
begin
TabOrder:= -1;
for i:= 0 to 10 do
begin
Inc(TabOrder);
UniEdit:= TEdit.Create(Self);
UniEdit.Parent:= pnlFields; //panel
UniEdit.Height:= 20;
UniEdit.Width:= 30;
UniEdit.Top:= Top;
Left:= Left;
Top:= Top + 23;
UniEdit.TabStop:= True;
UniEdit.TabOrder:= TabOrder;
End;
end;
答案 0 :(得分:2)
查看更正后的代码:
var
UniEdit: TEdit;
i:byte;
begin
for i:= 0 to 10 do
begin
UniEdit:= TEdit.Create(Self);
UniEdit.Parent:= panel1; //panel
UniEdit.Height:= 20;
UniEdit.Width:= 30;
UniEdit.Left:= 20;
UniEdit.Top:= 20+ 23*i;
UniEdit.TabStop:= True;
UniEdit.TabOrder:= i;
end;
end;
否则Left:= Left;
等属性的范围意味着代码引用的Self.Left:= Self.Left;
等于TForm1.Left:= TForm1.Left;
但不等于Uniedit.Left
等。