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

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

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

而不是这样写:
Labe1->Caption  = "xxxxx";
Labe2->Caption  = "xxxxx";
Labe3->Caption  = "xxxxx";

最佳答案

您需要为此创建自己的数组。

在表单的标题中,定义数组:

private:
    TLabel* labels[4];

然后在窗体的构造函数中填充数组:
labels[0] = Label1;
labels[1] = Label2;
labels[2] = Label3;
labels[3] = Label4;

要么:
for(int i = 0; i < 4; i++){
    labels[i] = static_cast<TLabel*>(FindComponent("Label"+IntToStr(i+1)));
}

然后,您可以在需要时遍历数组:
for(int i = 0; i < 4; i++){
    labels[i]->Caption = "xxxxx";
}

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

10-12 15:34