首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

小疑点,请帮忙

2012-02-23 
小问题,请帮忙我有8个下拉框,名称为:Product1Product2Product3Product4Product5Product6Product7Product8

小问题,请帮忙
我有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";
[解决办法]

C/C++ code
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类中加入以下声明:
C/C++ code
private:    // User declarations    TComboBox * __fastcall GetProductByIndex(int nIndex);public:        // User declarations    __property TComboBox *Product[int nIndex] = { read=GetProductByIndex };
[解决办法]
探讨
也可以使用TList对组件进行管理

热点排行