C++Builder中控件数组的实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Key words :C + + Builder ; Componet Array ;VCL
© 1995-2006 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.
2 事件 、事件句柄 、动态创建控件
2. 1 事件 、事件句柄
事件是 Windows 系统中发生的事情和处理程序之间 的连接 ,我们称处理程序为响应代码 ,ቤተ መጻሕፍቲ ባይዱ对所发生事情的 相应 ,事件响应程序我们称其为事件句柄 。
C + + Builder 中的组件继承了 Windows 常见操作的事 件即标准事件 ,如单击鼠标 、键盘按下 、鼠标移动 、键盘弹 起 、窗口建立等分别对应以下事件 : Click、KeyDown、Mouse2 Move 、KeyUp 、FormCreate ,这些事件的捕获和处理均由 C + + Builder 自行处理 ,程序设计人员只需为它们指定事件处理 程序 。
void fastcall TForm1 : :FormCreate(TObject 3 Sender) { MyVcl = new TList ;/ / 创建 TList 对象 }
3. 2. 2 使用 Tlist 类的 Add 方法将控件数组元素添 加到数组中
for (int i = 0 ;i < 5 ;i + + ) {
对于 Button 组件来说 ,单击鼠标事件可以如下处理 : void fastcall TForm1 : :Button1Click(TObject 3 Sender) { / / 此处存放响应在 Button 控件上单击鼠标的处理程 序代码
} 对于 RadioButton 组件来说 ,单击鼠标事件可以如下处 理: void fastcall TForm1 : : RadioButton1Click ( TObject 3 Sender) { / / 此处存放响应在 RadioButton 控件上单击鼠标的处 理程序代码
3. 3 控件数组元素的使用
for (int i = 0 ;i < 5 ;i + + ) ( (TEdit 3 ) MyVcl2 > Items[ i 3 3 + 0 ])2 > Parent = Paneln ;/ / 改变数组元素的 Parent 属性在这里 [ i 3 3 + 0 ]可以视 为数组元素的下标 ,使用 MyVcl - > Items[ i 3 3 + 0 ]访问数 组元素 。
[ 收稿日期 ]2003208216 [ 作者简介 ]常保平 (1964 —) ,男 ,河南浚县人 ,安阳师院副教授 ,网络中心主任 ,从事计算机软件和网络技术研究 。
© 1995-2006 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.
class TForm1 : public TForm {
published : / / IDE - managed Components private : / / User declarations TList * MyVcl ;/ / 说明 Tlist 类的对象 public : / / User declarations
Class TmemoEx :public TMemo
{ }
extern TMemoEx memoex ; Class TForm1 :Class TForm
{
public : TMemoEx 3 MemoEx ; } void fastcall TForm1 : :FormShow(TObject 3 Sender) { MemoEx = new TMemoEx(this) ; MemoEx2 > Parent = this ; }
CHANG Bao2ping ,LIU Ling2xia
(Computer Center of Anyang Techers’College ,Anyang 455000 ,China)
Abstract :This Paper gives the method that how to process a Componet Array in C + + Builder
2. 3 动态创建控件
C + + Builder 中可以动态地创建控件 ,其创建步骤如 下:
1) extern TMemoEx memoex ; 2) TMemoEx 3 MemoEx ; 3) MemoEx = new TMemoEx(this) ; 4) MemoEx2 > Parent = this ; 以生成一个 TMemo 的派生类及动态地创建该 VCL 控 件为例 。
2003 年 安阳师范学院学报
37
C + + Builder 中控件数组的实现
常保平 ,刘凌霞
(安阳师范学院 计算中心 ,河南 安阳 455000)
[ 摘 要 ]C + + Builder 是目前比较优秀的 C + + 编译器 ,其推出的可视组件库 (VCL) 具有可视性好 、使用方便的特点 , 该库包含了 Windows 中常用的部件 ,但未提供控件数组功能 ,为此 ,本文给出了 C + + Builder 中控件数组实现的原理和方 法。
fastcall TForm1 (TComponent * Owner) ; virtual fastcall ~TForm1 ( ) ; };
fastcall TForm1 : :TForm1() { delete MyVcl ; / / 删除 TList 对象 }
3. 2 创建控件数组 3. 2. 1 在窗体建立时创建 TList 对象
}
我们称单击为事件 ,称 Button1Click ( TObject 3 Sender) 和 RadioButton1Click(TObject 3 Sender) 为单击鼠标的事件 句柄 。
2. 2 句柄共享
C + + Builder 中 ,不同类型的控件的处理程序一般情 况下是不一样的 ,那么事件句柄也不一样 ,但有时两个控 件的处理程序完全相同或有许多相似之处 ,这时两个控件 需要使用相同的事件句柄 ,对此我们称为句柄共享 ,其方 法位在在相关控件的 EVENT 事件中设置事件句柄为同一 个函数 。如 2. 1 中 Button 组件和 RadioButton 组件使用相 同的事件句柄 Click(TObject 3 Sender) 。
38
安阳师范学院学报 2003 年
3 控件数组的实现
从 2 中我们知道 ,C ++ Builder 中可以 1) 允许不同类 型的多个控件共享同一个事件句柄 ,2) 提供了动态创建控 件的功能 。我们可以利用以上功能和 Tlist 类对象来实现 控件数组 。
3. 1 在窗体类中创建 Tlist 类的对象和窗体的析构 函数
[2 ]乔林 1C + + Builder 5 技术内幕[M]1 中国铁道出版社 , 2000. 71
[3 ]梁志刚 1C + + Builder 5 开发人员指南 [ M]1 机械工业 出版社 ,2000. 101
Processing Event by Oneself in C + + Builder
[ 关键词 ]C + + Builder ; 控件数组 ;VCL [ 中图分类号 ]TP31111 [ 文献标识码 ]A [ 文章编号 ]167125330 (2003) 0520037202
1 问题的提出
在 C ++ Builder 中 ,可视组件库 (VCL) 提供了 Windows 中常用部件如“按钮”“、窗体”“、对话框”“、标签”等可视组 件 ,为程序设计人员提供了快捷便利的可视化编程环境 , 但遗憾的是其没有直接提供控件数组的功能 ,需要开发者 自己编程实现 ,因此本文论述了 C + + Builder 中控件数组 实现的原理和方法 。
4 结束语
在进行程序设计时使用控件数组 ,实现了将不同类型 控件的统一处理 ,使程序员可以同时控制 Windows 的不同 组件 ,应用程序中合理使用控件数组能够更加灵活地处理 Windows 组件 ,提高程序的编写效率 。
[ 参考文献 ]
[1 ]李幼仪 1C + + Builder 高级应用开发指南 [M]1 清华大 学出版社 ,2002. 111
TEdit 3 EditNumber = new TEdit (this) ;/ / 动态创建控 件
/ / 控件属性定义 MyVcl2 > Add( EditNow) ; / / 加入到控件数组中 TImage 3 ImageOff = new TImage (this) ; / / 动态创建控 件 / / 控件属性定义 MyVcl2 > Add( ImageOff) ; / / 加入到控件数组中 TEdit 3 EditStats = new TEdit (this) ; / / 控件属性定义 MyVcl2 > Add( EditStatus) ; / / 加入到控件数组中 }
© 1995-2006 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.
2 事件 、事件句柄 、动态创建控件
2. 1 事件 、事件句柄
事件是 Windows 系统中发生的事情和处理程序之间 的连接 ,我们称处理程序为响应代码 ,ቤተ መጻሕፍቲ ባይዱ对所发生事情的 相应 ,事件响应程序我们称其为事件句柄 。
C + + Builder 中的组件继承了 Windows 常见操作的事 件即标准事件 ,如单击鼠标 、键盘按下 、鼠标移动 、键盘弹 起 、窗口建立等分别对应以下事件 : Click、KeyDown、Mouse2 Move 、KeyUp 、FormCreate ,这些事件的捕获和处理均由 C + + Builder 自行处理 ,程序设计人员只需为它们指定事件处理 程序 。
void fastcall TForm1 : :FormCreate(TObject 3 Sender) { MyVcl = new TList ;/ / 创建 TList 对象 }
3. 2. 2 使用 Tlist 类的 Add 方法将控件数组元素添 加到数组中
for (int i = 0 ;i < 5 ;i + + ) {
对于 Button 组件来说 ,单击鼠标事件可以如下处理 : void fastcall TForm1 : :Button1Click(TObject 3 Sender) { / / 此处存放响应在 Button 控件上单击鼠标的处理程 序代码
} 对于 RadioButton 组件来说 ,单击鼠标事件可以如下处 理: void fastcall TForm1 : : RadioButton1Click ( TObject 3 Sender) { / / 此处存放响应在 RadioButton 控件上单击鼠标的处 理程序代码
3. 3 控件数组元素的使用
for (int i = 0 ;i < 5 ;i + + ) ( (TEdit 3 ) MyVcl2 > Items[ i 3 3 + 0 ])2 > Parent = Paneln ;/ / 改变数组元素的 Parent 属性在这里 [ i 3 3 + 0 ]可以视 为数组元素的下标 ,使用 MyVcl - > Items[ i 3 3 + 0 ]访问数 组元素 。
[ 收稿日期 ]2003208216 [ 作者简介 ]常保平 (1964 —) ,男 ,河南浚县人 ,安阳师院副教授 ,网络中心主任 ,从事计算机软件和网络技术研究 。
© 1995-2006 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.
class TForm1 : public TForm {
published : / / IDE - managed Components private : / / User declarations TList * MyVcl ;/ / 说明 Tlist 类的对象 public : / / User declarations
Class TmemoEx :public TMemo
{ }
extern TMemoEx memoex ; Class TForm1 :Class TForm
{
public : TMemoEx 3 MemoEx ; } void fastcall TForm1 : :FormShow(TObject 3 Sender) { MemoEx = new TMemoEx(this) ; MemoEx2 > Parent = this ; }
CHANG Bao2ping ,LIU Ling2xia
(Computer Center of Anyang Techers’College ,Anyang 455000 ,China)
Abstract :This Paper gives the method that how to process a Componet Array in C + + Builder
2. 3 动态创建控件
C + + Builder 中可以动态地创建控件 ,其创建步骤如 下:
1) extern TMemoEx memoex ; 2) TMemoEx 3 MemoEx ; 3) MemoEx = new TMemoEx(this) ; 4) MemoEx2 > Parent = this ; 以生成一个 TMemo 的派生类及动态地创建该 VCL 控 件为例 。
2003 年 安阳师范学院学报
37
C + + Builder 中控件数组的实现
常保平 ,刘凌霞
(安阳师范学院 计算中心 ,河南 安阳 455000)
[ 摘 要 ]C + + Builder 是目前比较优秀的 C + + 编译器 ,其推出的可视组件库 (VCL) 具有可视性好 、使用方便的特点 , 该库包含了 Windows 中常用的部件 ,但未提供控件数组功能 ,为此 ,本文给出了 C + + Builder 中控件数组实现的原理和方 法。
fastcall TForm1 (TComponent * Owner) ; virtual fastcall ~TForm1 ( ) ; };
fastcall TForm1 : :TForm1() { delete MyVcl ; / / 删除 TList 对象 }
3. 2 创建控件数组 3. 2. 1 在窗体建立时创建 TList 对象
}
我们称单击为事件 ,称 Button1Click ( TObject 3 Sender) 和 RadioButton1Click(TObject 3 Sender) 为单击鼠标的事件 句柄 。
2. 2 句柄共享
C + + Builder 中 ,不同类型的控件的处理程序一般情 况下是不一样的 ,那么事件句柄也不一样 ,但有时两个控 件的处理程序完全相同或有许多相似之处 ,这时两个控件 需要使用相同的事件句柄 ,对此我们称为句柄共享 ,其方 法位在在相关控件的 EVENT 事件中设置事件句柄为同一 个函数 。如 2. 1 中 Button 组件和 RadioButton 组件使用相 同的事件句柄 Click(TObject 3 Sender) 。
38
安阳师范学院学报 2003 年
3 控件数组的实现
从 2 中我们知道 ,C ++ Builder 中可以 1) 允许不同类 型的多个控件共享同一个事件句柄 ,2) 提供了动态创建控 件的功能 。我们可以利用以上功能和 Tlist 类对象来实现 控件数组 。
3. 1 在窗体类中创建 Tlist 类的对象和窗体的析构 函数
[2 ]乔林 1C + + Builder 5 技术内幕[M]1 中国铁道出版社 , 2000. 71
[3 ]梁志刚 1C + + Builder 5 开发人员指南 [ M]1 机械工业 出版社 ,2000. 101
Processing Event by Oneself in C + + Builder
[ 关键词 ]C + + Builder ; 控件数组 ;VCL [ 中图分类号 ]TP31111 [ 文献标识码 ]A [ 文章编号 ]167125330 (2003) 0520037202
1 问题的提出
在 C ++ Builder 中 ,可视组件库 (VCL) 提供了 Windows 中常用部件如“按钮”“、窗体”“、对话框”“、标签”等可视组 件 ,为程序设计人员提供了快捷便利的可视化编程环境 , 但遗憾的是其没有直接提供控件数组的功能 ,需要开发者 自己编程实现 ,因此本文论述了 C + + Builder 中控件数组 实现的原理和方法 。
4 结束语
在进行程序设计时使用控件数组 ,实现了将不同类型 控件的统一处理 ,使程序员可以同时控制 Windows 的不同 组件 ,应用程序中合理使用控件数组能够更加灵活地处理 Windows 组件 ,提高程序的编写效率 。
[ 参考文献 ]
[1 ]李幼仪 1C + + Builder 高级应用开发指南 [M]1 清华大 学出版社 ,2002. 111
TEdit 3 EditNumber = new TEdit (this) ;/ / 动态创建控 件
/ / 控件属性定义 MyVcl2 > Add( EditNow) ; / / 加入到控件数组中 TImage 3 ImageOff = new TImage (this) ; / / 动态创建控 件 / / 控件属性定义 MyVcl2 > Add( ImageOff) ; / / 加入到控件数组中 TEdit 3 EditStats = new TEdit (this) ; / / 控件属性定义 MyVcl2 > Add( EditStatus) ; / / 加入到控件数组中 }