在 运行 时间获取新创建的组件的名称

Getting the name of newly created components at run time

本质上,我希望用户以标签的形式添加评论。我已经实现了这个没问题,但我希望用户能够删除新创建的标签。

    comment := TLabel.Create(Self);
    comment.Parent := Form1;

我想在运行时添加标签,然后用名称或对该标签的任何类型的引用填充组合框或字符串网格或类似的东西,以便用户可以删除该标签。

如何获取新创建的标签的名称以供参考?

感谢您的帮助。

组件的名称可以从它的 Name 属性:

comment.Name

您可以写信给那个 属性 给组件一个易于向用户显示的名称。当您动态创建一个新组件时,您会想要这样做,因为在您命名之前它不会有名称。

如果您不想使用 Name 属性,则无需使用。您可以使用自己选择的命名。例如,您可能希望使用包含空格的名称。或者不限制使用静态控件已经使用的名称。将组件保存在字典中,名称作为键,组件作为值。我的建议是你走第二条路。

您自己创建的组件没有 Name 分配,除非您自己明确分配一个。当您在设计时将组件放在窗体上时,IDE 会合成 Name

您可以随意分配 Name,只要它是有效的组件名称(未使用、无空格等),然后可以通过 [=13] 找到该组件=] 方法,如果您不自己跟踪组件。否则,将组件放入您自己的list/array中,以便稍后找到它。