【问题标题】:How to access component's properties without knowing its name?如何在不知道其名称的情况下访问组件的属性?
【发布时间】:2017-02-18 07:38:42
【问题描述】:

有没有办法在不知道其名称的情况下使用在运行时创建的组件的属性?我的意思是在你已经这样做之后。

with TPanel.Create(self) do
  begin
  Name := 'Panel' + IntToStr(ComponentCount + 1);
  Height := 50;
  Width := 100;
  Top := 30;
  Left := 30;
  Parent := self;
  end;

【问题讨论】:

  • 将对象存储在容器中,例如TList<TPanel>

标签: delphi


【解决方案1】:

声明一个TPanel 类型的变量并将对您的组件的引用存储在该变量中。

var
  Panel: TPanel;
.... 
Panel := TPanel.Create(Self);

然后您可以使用此变量引用控件。

您可能需要将变量保存为表单的成员字段、数组或其他容器。

【讨论】:

  • 我正在处理无限数量的组件。
  • 那时不能都叫panel1。正如答案中所说,将它们存储在数组或另一个容器中。
  • 没关系。答案是一样的。
  • 您知道,8 个月后,我想我想说对不起,我接受了另一个答案而不是您的答案。我应该知道得更好(好吧,我没有和现在一样的知识)。谢谢你的帮助。
  • 顺便说一下,我用来存储面板的容器是TList(泛型版本)。
猜你喜欢
  • 2013-05-10
  • 1970-01-01
  • 1970-01-01
  • 2014-07-31
  • 2015-07-29
  • 1970-01-01
  • 2021-01-27
  • 1970-01-01
  • 2021-01-05
相关资源
最近更新 更多