在 Delphi 中以编程方式设置 Tab 键顺序
Setting tab order programmatically in Delphi
我正在尝试以编程方式创建一些控件,但它根本不起作用。我举了一个例子,我尝试创建 11 个编辑组件并将 Tab 键顺序设置为从头到尾。
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;
查看更正后的代码:
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
等
我正在尝试以编程方式创建一些控件,但它根本不起作用。我举了一个例子,我尝试创建 11 个编辑组件并将 Tab 键顺序设置为从头到尾。
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;
查看更正后的代码:
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
等