优胜从选择开始,我们是您最好的选择!—— 中州期刊联盟(新乡市博翰文化传媒有限公司)
0373-5939925
2851259250@qq.com
我要检测 我要投稿 合法期刊查询
您的位置:网站首页 > 优秀论文 > 正文

Delphi模拟实现控件数组分析

作者:张慧来源:原创日期:2013-10-11人气:749

1、控件数组为使用共享公共功能的控件组提供了一种方便的方式。例如,控件组可以用来显示相关数据,或者在单击时提供相关的操作。控件数组处理多个控件统一事件上很方便此功能使得创建一个能够响应由多个不同控件引发的事件的处理程序方法成为可能。使用控件数组可开发出一些小型游戏。控件数组的灵活使用能够大大提高编程人员的编程效率。Delphi未提供专门的控件数组,本文主要讨论的是如何在Delphi中模拟实现控件数组。
2、控件数组原理
标准的控件数组是由一组相同类型的控件组成。它们共用一个控件名,具有相同的属性,执行相似的操作,同时共享同样的事件过程。为区分控件数组中的各个元素,具有此功能的程序设计语言通常会把各元素的下标值传送给过程,过程从接收到的下标来区分不同的元素。
3、Delphi中控件数组的模拟实现
3.1Delphi模拟控件数组原理分析
VB是具有的灵活的控件数组功能的典型程序设计语言,但在DELPHI中却未专门提供控件数组,在很多DELPHI的教材中都提到一个方法:TLISTSTRING;使TLISTSTRING类控制容器中的控件以达到使用控件数组的目的;另外一种途径是由用户自己来开发带数组性质的VCL组件。这两种方法对DELPHI的是初级入门者是不现实的。使用TLISTSTRING类代码量大,难以阅读,使用时非常吃力;由用户自己制作组件这又不是DELPHI初级使用者所能完成的工作。在Delphi中,各控件排列的先后顺序和它被拖放到窗体上的先后顺序相同。这个顺序是可以人为修改的,通过修改这个顺序,能够实现控件的数组化。
3.2Delphi模拟控件数组模拟实现方案
使用Delphi窗体的Components[I],ComponentCount;ComponentIndex三个属性模拟控件的数组化。各属性相关含义如下:
Components[I]属性表示当前窗体上所有属于TComponent类的对象形成的数组ComponentCount属性表示当前窗体上所有属于TComponent类的对象的个数ComponentIndex属性表示当前窗体上属于TComponent类的某个对象在Components[I]数组中的下标
将窗体上所有Button组件的Caption属性设为Tbutton,代码如下:
VarI:integer;
forI:=0tocomponentCount-1do‘利用for循环判断某对象是否属于Tbutton类
if(components[I]isTbutton)then
(components[I]asTbutton).Caption:='TButton';
分析:For循环用于遍历当前窗体上所有属于TComponent类的对象;if语句用于判断某个对象是否属于Tbutton类;如果条件成立,则将该对象的Caption属性修改为'TButton'。通过上述分析,不难发现,这种方法有一定局限性,最明显的是设计人员并不知道Components[I]到底代表哪一个控件,因此只能用遍历的方法进行筛选,这不仅影响了程序执行的效率,也带来编程上的繁琐问题。
要解决上述问题,就要用到TComponent类的ComponentIndex属性。在delphi7.0中,ComponentIndex属性表示当前窗体上属于TComponent类的某个对象在Components[I]数组中的下标并且该属性是一个可读写属性;该属性的默认值是该组件的添加次序(从0开始计数),那么就可以利用这一属性在组件生成时将同类组件的ComponentIndex属性设置为连续的自然数数列;比如:n,n+1,n+2,……,n+m;如果我们要修改窗体上的该类组件,只需要遍历Components[I]数组的部分下标(比如Components[n]……Components[n+m])就可以实现。从而提高程序执行效率,同时也避免了编程上的繁琐问题。

网络客服QQ: 沈编辑

投诉建议:0373-5939925    投诉建议QQ:

招聘合作:2851259250@qq.com (如您是期刊主编、文章高手,可通过邮件合作)

地址:河南省新乡市金穗大道东段266号中州期刊联盟 ICP备案号:豫ICP备2020036848

【免责声明】:中州期刊联盟所提供的信息资源如有侵权、违规,请及时告知。

版权所有:中州期刊联盟(新乡市博翰文化传媒有限公司)

关注”中州期刊联盟”公众号
了解论文写作全系列课程

核心期刊为何难发?

论文发表总嫌贵?

职院单位发核心?

扫描关注公众号

论文发表不再有疑惑

论文写作全系列课程

扫码了解更多

轻松写核心期刊论文

在线留言