在Delphi中以编程方式设置Tab键顺序

时间:2016-01-05 19:43:04

标签: delphi edit

我试图以编程方式创建一些控件但它根本不起作用。我举了一个例子,我尝试创建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;

1 个答案:

答案 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等。