【问题标题】:Getting the name of newly created components at run time在运行时获取新创建的组件的名称
【发布时间】:2015-03-02 18:18:41
【问题描述】:

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

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

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

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

感谢您的帮助。

【问题讨论】:

    标签: delphi delphi-xe


    【解决方案1】:

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

    你可以指定任何你喜欢的Name,只要它是一个有效的组件名称(未使用、没有空格等),然后可以通过它的Owner.FindComponent()方法找到该组件,如果你不要自己跟踪组件。否则,将组件放入您自己的列表/数组中,以便您以后找到它。

    【讨论】:

      【解决方案2】:

      可以从其Name 属性中读取组件的名称:

      comment.Name
      

      您可以写入该属性,为组件指定一个适合向用户显示的名称。当您动态创建一个新组件时,您会想要这样做,因为在您命名之前它不会有名称。

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

      【讨论】:

      • 仅当您在创建 Name 时分配它。在运行时动态创建的控件没有指定名称。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-05
      • 2018-04-24
      • 2021-07-29
      • 2010-11-17
      • 2019-03-19
      相关资源
      最近更新 更多