gpt4 book ai didi

c++ - 窗体上对象的迭代

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:24 25 4
gpt4 key购买 nike

我是 Embarcadero C++Builder 的新手。我的问题是:是否可以用一个循环来迭代多个对象的属性?

示例:如果我有很多标签,怎么可能做类似这样的事情:

 for(int i=1; i<4; i++){
Label[i]->Caption = "xxxxx";
}

而不是这样写:

Labe1->Caption  = "xxxxx"; 
Labe2->Caption = "xxxxx";
Labe3->Caption = "xxxxx";

最佳答案

如果您使用 IDE 创建 TLabel,则需要手动创建一个容器来存储指向它们的指针。

在您的表单头文件中:

#include <vector>

并将此添加到表单的 protected 部分:

std::vector<TLabel*> myLabels;

并将其添加到构造函数中:

myLabels.push_back(Label1);
myLabels.push_back(Label2);
myLabels.push_back(Label3);

或者甚至是这样:

for(int c=0; c<ComponentCount; ++c) {
TLabel* tmp = dynamic_cast<TLabel*>(Components[c]);
if(tmp) myLabels.push_back(tmp);
}

您现在可以使用基于 C++11 范围的 for 循环遍历您的标签:

for(auto l : myLabels) {
l->Caption = "xxxxx";
}

关于c++ - 窗体上对象的迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53157246/

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