gpt4 book ai didi

delphi - 将现有的 TLabels 插入到动态创建的 TLabels 数组中

转载 作者:行者123 更新时间:2023-12-03 19:46:18 26 4
gpt4 key购买 nike

我正在尝试创建 TLabel 的动态数组s,然后插入已经存在的 TLabel s 在 IDE 中创建到其中,这样我就可以在代码中使用该数组。

我的目的是将这种方法用于几个类似的过程。

我想通过使用循环来实现。

我看到了这个线程,它对理解创建 TLabel 的数组很有帮助。 s 并用 TLabel 填充它们s 用于预期目的,但我无法找到针对已经创建标签的情况的特定解决方案。

Use variables for object name in Delphi

基本上,我试图自动化的是:

var 
LabelArray : array of TLabel;

SetLength(LabelArray, 17);

LabelArray[0] := M2;
LabelArray[1] := M3;
.
.
LabelArray[16] := M18
M2M18是 17 个标签,它们是 TLabel s 已经创建并定位在表单上。

最佳答案

您可以使用表格的FindComponent将标签添加到数组的方法。

下面的代码取决于您声明 LabelArray作为表单级别的私有(private)变量,以便在创建表单和执行代码时它存在并且可见。它还将 17 硬编码为标签的数量,因此,如果您删除或重命名标签,您将在数组中有一个空白位置 - 我没有包括任何错误检查以确保在将标签放入之前找到标签数组和元素最终可能是 nil如果缺少标签。

procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
SetLength(LabelArray, 17);
{
I use Low() and High() here to avoid having multiple places where
you would have to change the code if you end up adding or removing
labels in the future.

Also note that the index into the array starts at 0, so the code that
calls Format() adjusts that index by 2 to start at M2 instead of M0.
}
for i := Low(LabelArray) to High(LabelArray) do
LabelArray[i] := TLabel(FindComponent(Format('M%d', [i + 2])));
end;

关于delphi - 将现有的 TLabels 插入到动态创建的 TLabels 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58896427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com