在BCB中使用向量实现控件数组

C++Builder动态对象数组 三种动态对象数组使用和对比(Tlist类、DynamicArray、STL中的vector容器)。 立即下载

  前几天在CSDN的BCB版有人问起这样的问题:“五个Button的OnClick事件对应改变五个Label的名称”,因为BCB没有控件数组,所以当时大家的回答大都是基于RTTI的,昨天在看《C++ Primer》的时候,忽然想起了标准库中的vector类型,我们用这个类型也可以实现控件数组。

   今天试了一下,我把实验的过程写在这里。首先要包含头文件并,设置名字空间,声明变量。在MainForm.h中:

#include<vector>

using namespace std //标准库的名字空间

在Form1的public中声明 vector<TLabel *> test;

注意,这里我曾想用vector<TLabel*> test(5)的形式来初始化该数组,但BCB好象不支持这种形式,这方面的问题还有待解决。

  然后在主窗体上加两个Button和一个Label(命名为testLabel),在Button1的事件中,初始化这个数组。

for(int i=0;i<5;i++)

{

   TLabel * Label=new TLabel(this);

   Label->Parent=Form1;

   Label->Top=20*i;

   test.push_back(Label);

}

test.push_back(testLabel);//测试数组是否可以包含静态生成的控件。这时的数组应该是包含6个成员变量。

在Button2中写入如下代码:

for(int i=0;i<test.size();i++)

{

  test[i]->Caption="wolf"+AnsiString(i):

}

该例子通过对一个数组循环赋值来产生一个控件数组,并通过循环来操作这个数组。这里展示的仅仅是vector数据类型很粗浅的一种用法,C++的STL技术可以给我们的编程带来更大的自由和弹性。

以上代码在Win2000和BCB5环境中编译通过。

C++Builder中实现控件数组的功能 立即下载

相关推荐

BCB 控件遍历

通过Traval.h中的遍历函数,可对窗体内所有控件进行遍历,并将遍历到的控件设置为可视或不可视

bcb vector使用

1、定义结构体 class vacation //jiao { public: AnsiString vname; AnsiString vdate; int status; };   2、定义vector  std::vector    m_vacationDate; 3、读取  vacation *pTemp=NULL;    pTemp = new vacation

loveheronly的专栏 2259

C++vector实现

C++vector实现图,包括dijkstra算法,prim算法,以及拓扑排序等内容

BCBVECTOR源码(参考学习)

这个是头文件~~~~~~~~~~~~~~~~~~~~~~~~~~很长的#ifndef __VECTOR_H#define __VECTOR_H#pragma option push -b -a8 -pc -Vx- -Ve- -A- -w-inl -w-aus -w-sig// -*- C++ -*-/***********************************************

风之力 2093

C++BUILDER中几种容器的使用

  C++BUILDER中几种容器的使用                              -------BCB控件数组实现 C++BUILDER是Borland公司基于C++的快速开发工具,它简单的使用方法和强大的功能一直深受很多编程人员的好评。C++BUILDER(以下简称BCB)的组件库跟DELPHI一样,都是VCL。跟微软的MFC不同,VCL完全是用Object Pascal语

今天能看见山的专栏 3649

BCB 查找

std::vector  vGroup;  AnsiString  str1=“str1”; AnsiString  str1=“str2”; AnsiString  str=“str”;  std::vector::iterator result = find( vGroup.begin( ), vGroup.end( ), str); //查找  if ( result == vGr

loveheronly的专栏 893

BCB使用向量实现控件数组 (转)

BCB使用向量实现控件数组 (转)[@more@] 前几天在CSDN的BCB版有人问起这样的问题:“五个Button的OnClick事件对应改变五个Label的名称”,因为BCB没有控件数组,所以当时大家的回答大都是基于R...

csd3176的博客 195

用webbroswer控件自动点击确定按钮

帮助我们知道有多少用户遇到卡死先它得是1个NP问题参数的先验分布和后验分布都是Beta分布的情况,是词 t 在主题 k 中出现的次数贝叶斯派既然把看做是1个随机变量.把的每1列元素起来得到个数直到完成整个事件分发,速度慢为了完成目标可以不这1切手段当然这些手段都是不顺人利己的1些部分什么也没有映射.   2 杰卡德距离 如下,但由于开发整体技术的不成熟以及硬件上不充分的支持那么优化后的n

gongyanli2797的博客 537

BCB 全局控件数组初始化

<br />全局控件数组会将所有成员自动初始化为NULL

天道酬勤 1305

BCB控件數組的簡易實現

      網上有控件數組實現的多個方法,今天發現了Delphi的一個簡單版本,欣喜而外,特翻譯成bcb.      1,若有多個相同類的控件,比方說,TEdit,為了簡化逐個操作,可通過其Index屬性.      2,若直接放在Form上,則用Components[]屬性.比如:      void __fastcall TForm1::Button1Click(TObject *Sender

横刀立马的专栏 1269

bcb之StringGrid控件使用

bcb新手,还有很多地方需要学习提升的,有不对的地方请提出来。 StringGird控件的基本设置 stringgrid1->ColCount = 6;//设置stringgrid1总列数 stringgrid1->RowCount = 4;//设置stringgrid1总行数 stringgrid1->FixedCols = 0;//设置stringgrid1资料区列数 str...

糯米的博客 4008

BCB使用VCL控件数组

BCB使用VCL控件数组(一) 抱雪 昨晚和网友邬彦华在OICQ上闲聊,他言及正在为朋友编一个游戏菜单,其中动态创建了一组按纽,最后却无法释放。他的实现方法如下: for (int i=1;i{ TSpeedButton *spdBtn=new TSpeedButton(this); spdBtn->Parent=ScrollBox;//指定父控件 spdBtn->Caption=IntToS

1724

C++Builder中实现控件数组的功能

Borland C++ Builder作为Inprise(原Borland)公司新推出的快速应用程序开发工具(RAD),具有威力强大的C++语言和快捷便利的可视化编程完美结合的优点,遗憾的是其没有直接提供像VB中的控件数组的功能,需要开发者自己编程实现。   VB中的一个控件数组可以1、允许多个控件共享同一个事件句柄,2、提供了运行期间增加一个控件的机制,3、提供了一种方便的组合控件的方法。前两项

键者天行 8351

BCB高手进阶-如何实现控件数组

BCB高手进阶-如何实现控件数组 ( 在C++Builder中,没有提供像VB中控件数组的功能,很令遗憾。经过一番琢摸,终于解决了这个问题。技巧不敢独享,奉献出来供大家交流。 在VB中,控件数组可以 : 允许多个控件共享同一个事件句柄提供了运行期间增加一个控件的机制提供了一种方便的组合控件的方法。 前两项在C++ Builder中早已实现,而且CB更有一个优点。即不同类型的控

路在脚下 1294
下一篇: 打造Pocket PC 2002 Emulator的中文环境
aawolf
博客等级 码龄26年 840粉丝 163原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值