基于组件技术的multitimer的设计与实现

基于组件技术的multitimer的设计与实现

ID:18331985

大小:51.50 KB

页数:6页

时间:2018-09-16

基于组件技术的multitimer的设计与实现_第1页
基于组件技术的multitimer的设计与实现_第2页
基于组件技术的multitimer的设计与实现_第3页
基于组件技术的multitimer的设计与实现_第4页
基于组件技术的multitimer的设计与实现_第5页
资源描述:

《基于组件技术的multitimer的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于组件技术的MultiTimer的设计与实现[日期:2006-05-20]来源: 作者:[字体:大中小]李琪谢建 摘要:本文提出了采用封装扩充设计DelphiVCL控件Ttimer的方法,成功开发出一种新的多重复用计时器控件MultiTimer,解决了某型导弹发射虚拟仿真系统中用户操作面板需要多个定时器触发各种事件的问题。关键词:delphiVCL虚拟仿真控件1、问题的提出我们在设计某个导弹操作平台虚拟系统时,在计算机上模拟操作平台面板的各种操作规程,在设计用户界面中经常用到3~5多个定时器。大家知道,一个定时器就要占用非常大的系

2、统资源,这使整个软件系统运行速度和稳定性都大大降低,为此,我们利用Delphi控件开发技术在现有的VCL控件基础上设计了一种多重复用计时器控件MultiTimer,它占用系统资源只有一个定时器大小,但起到多个定时器的功能,下面就介绍这种定时器控件的设计方案。2、Delphi控件开发技术Delphi作为一种OOP开发环境,支持用户继承VCL类或新创建自定义类开发出符合自己要求的控件。Delphi提供了多种扩展控件的方法:(1)从Delphi自带的控件中继承并扩展。(2)直接编写新的控件,并编译安装在Delphi的控件面板中。(3)安装

3、外部程序提供的OCX控件。开发过程一般分为创建控件属性、方法、事件、消息处理、异常处理和设计时控制方式等六步,完全重新设计一个新控件是不可取的,也是要花费大量时间,我们采用第一种方法从Delphi自带的控件中继承并扩展。Delphi对象有继承的特性,这意味着我们可以在已有对象类型的基础上创建新的对象,这个新对象将能够继承其祖先对象的所有事件、属性及方法,并且在对衍生对象添加新过程方面有着十足的灵活性。在Delphi提供的控件中,有一个Timer定时器控件,位于system页中,可以定时触发事件执行用户代码,在模拟系统中经常使用这个控

4、件模拟各种流程的执行情况,但是Timer控件只能起到一个定时的作用,如果想使用多个不同的定时器,就必须使用多个Timer控件,分别设置各种参数,不仅非常不方便,而且浪费大量系统资源。于是我们利用类的继承性和派生性创建一个新的控件,继承Timer控件所有特性,并增加新的特性,给它加上多个计时功能。3、TmultiTimer类实现3.1属性定义TmultiTimer类实现如图1所示,它为TmultiTimer类继承结构,其属性定义如下表所示。属性类型说明FEnabled1Boolean计数器1工作标志FEnabled2Boolean计数

5、器2工作标志FEnabled3Boolean计数器3工作标志FNumInteger内部区分计数器标志FInterval2Integer计数器2定时倍数FInterval3Integer计数器3定时倍数FOnTimer2TNotifyEvent定义OnTimer2事件FOnTimer3TNotifyEvent定义OnTimer3事件图1TMultiTimer类继承结构3.2方法事件定义procedureTimer;override;//重声明Timer事件procedureTimer2;dynamic;//动态生成Timer2事件pr

6、ocedureTimer3;dynamic;//动态生成Timer3事件3.3重声明构造函数和析构函数任何一个Delphi对象都至少有两个最基本的方法,即控件设计都必须构造函数(constructor)Create和析构函数(destructor)Destroy来完成为新对象分配内存和撤销对象并释放内存工作。constructorCreate(AOwner:TComponent);override;destructorDestroy;override;3.4实现多重复用过程procedureTMultiTimer.Timer;beg

7、inifFEnabled1=TruetheninheritedTimer;;FNum:=FNum+1;ifFNum=1*Interval2*Interval3+1thenFNum:=1;if(FNummodInterval2=0)and(FEnabled2=True)thenTimer2;if(FNummodInterval3=0)and(FEnabled3=True)thenTimer3;end;3.5第N个计数器响应过程procedureTMultiTimer.TimerN;beginifAssigned(FonTimerN)t

8、henFonTimerN(Self);end;3.6控件全部代码:unitMultiTimer;interfaceusesWindows,Messages,SysUtils,Classes,Graphics,Controls,Form

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。