如何在Delphi中动态创建多个标签、编辑等?

如何在Delphi中动态创建多个标签、编辑等?,delphi,list,controls,delphi-2009,Delphi,List,Controls,Delphi 2009,我希望用户创建自己的控件列表,例如TEdit、TCheckBox、TLabel,等等。但是,当我必须预定义每个控件,但我不知道要定义多少个对象时,如何创建另一个控件?这是创建每个对象时应该做的事情,了解其类类型: var Obj:TControl; begin Obj := TEdit.Create(AOwner); with Obj do begin //Set properties here... ... Parent := Self; //Assu

我希望用户创建自己的控件列表,例如
TEdit
TCheckBox
TLabel
,等等。但是,当我必须预定义每个控件,但我不知道要定义多少个对象时,如何创建另一个控件?

这是创建每个对象时应该做的事情,了解其类类型:

var
  Obj:TControl;
begin
  Obj := TEdit.Create(AOwner);
  with Obj do begin
    //Set properties here...
    ...
    Parent := Self;    //Assuming that you're writing code in your form class. if not, use object variable pointing to your form instead of `self`
  end;
end;
要存储未知数量的对象,可以使用动态数组或链接列表,甚至可以使用窗体的
控件
属性


这是你想做的事情(基础)的开始。对于实现应用程序的这一部分,您有很多选择。例如,您可以在表单类中有一个
TControl数组
,使用
Length
SetLength
函数,您可以计算出用户添加到表单中的对象数量。

@David Heffernan,请注意,
TObjectList
在Delphi 2009中有很多问题(通过修补程序部分解决)@TLama-这是先发制人的评论吗?我在任何地方都看不到大卫的评论或回答。@TLama-D2009中是否存在泛型?@Leonardo,是的,是的:-)我根本不理解这个问题。您只需编写
MyEdit:=TEdit.Create(Self)
和运行时创建的编辑控件。这一切的哪一部分你在苦苦挣扎?TEdit.Create(AOOwner)不也是这样吗?
?现在不是在IDE前面…@Jerry:当然,但是我们没有指向我们的对象的指针,这可能是必要的。