在 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