小问题,请帮忙
我有8个下拉框,
名称为:
Product1
Product2
Product3
Product4
Product5
Product6
Product7
Product8
如何用循环直接一句话赋值,如:
for (int i=1;i<=9;i++)
{
Product[i]="aaa";
}
[解决办法]
这样可否?
假设你有3个 TComboBox *ComboBox1;
可以先声明一个数组。 TComboBox *cb[3];
在FormCreate内,将ComboBox1的指针赋值给数组指针。
cb[0] = ComboBox1;
cb[1] = ComboBox2;
cb[2] = ComboBox3;
在你要用的时候,就可以利用循环了。
比如:
for(int i=0;i<3;i++)
cb[i]->Text = "aaaa";
[解决办法]
void __fastcall TForm1::btn1Click(TObject *Sender){ for (int i=0; i<this->ComponentCount; i++) { if (Components[i]->GetNamePath().Pos("Product") > 0) ((TComboBox *)Components[i])->Text = "aaa"; }}
[解决办法]
虽然C++Builder没有直接提供控件数组的功能,但可以通过属性来模拟:
窗体上添加若干个ComboBox,分别命名为Product1~Product8,再添加一个Button,然后:
.h文件Form类中加入以下声明:
private: // User declarations TComboBox * __fastcall GetProductByIndex(int nIndex);public: // User declarations __property TComboBox *Product[int nIndex] = { read=GetProductByIndex };
[解决办法]