【问题标题】:How to dynamically make multiple Labels, Edits and etc. in Delphi? [closed]如何在Delphi中动态制作多个Label、Edits等? [关闭]
【发布时间】:2013-04-01 17:54:48
【问题描述】:

我希望用户创建自己的控件列表,例如 TEditTCheckBoxTLabel 和其他内容。但是,当我必须预定义每个控件,但我不知道要定义多少个对象时,我该如何制作另一个?

【问题讨论】:

  • @David Heffernan,请注意,TObjectList<T> 在 Delphi 2009 中有很多问题(通过修补程序部分解决)。
  • @TLama - 这是先发制人的评论吗?我在任何地方都没有看到大卫的评论或回答。
  • @TLama - D2009 中是否存在泛型?
  • @Leonardo,是的,是的 :-)
  • 我完全不明白这个问题。你只需要写MyEdit := TEdit.Create(Self),嘿,运行时创建的编辑控件。您正在为这一切中的哪一部分苦苦挣扎?

标签: delphi list controls delphi-2009


【解决方案1】:

这是创建每个知道其类类型的对象时应该执行的操作:

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;

要存储未知数量的对象,您可以使用动态数组或链接列表,甚至可以使用表单的Controls 属性。

这是你想做的事情的开始(基础)。您有很多选择来实现应用程序的这一部分。例如,您可以在表单类中有一个array of TControl,并使用LengthSetLength 函数可以计算出您的用户向表单添加了多少对象。

【讨论】:

  • with TEdit.Create(AOwner) do begin... 不也可以吗?目前不在 IDE 面前...
  • @Jerry: 当然可以,但是我们没有指向我们对象的指针,这可能是必要的。
猜你喜欢
  • 1970-01-01
  • 2013-07-14
  • 1970-01-01
  • 1970-01-01
  • 2014-06-27
  • 2021-03-06
  • 2021-05-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多