前言:本站为你精心整理了计算机毕业vb中创建超长时间计时器对象范文,希望能为你的创作提供参考价值,我们的客服老师可以帮助你提供个性化的参考范文,欢迎咨询。
摘要:本文介绍在vb程序中用timer控件创建一个超长时间的计时器对象,将其编译成activexdll部件,利用代码的可重用性,在其它应用程序中调用。
关键词:vb计时器对象
vb系统中提供了固有计时器timer控件,通过给计时器控件的interval属性设置不同的数值,就可以控制计时器运行的时间间隔,但该属性是一个双字节的整型变量,最大值只能设置为65535,即只有65535毫秒,约一分钟多一点,在需要长时间计时时,该控件就无能为力了。本文给出用timer控件创建一个超长时间的计时器对象,并将其编译成activexdll部件,供其它应用程序调用,可实现最大限度地利用代码的可重用性。下面给出这个超长计时器对象的编程设计过程,供读者参考选用。
1.编写程序
启动vb,新建一个activexdll工程,将工程命名为newtimer,将类模块名class1改名为longtimer。在工程中添加一个窗体form1,在窗体上加入一个timer计时器控件timer1。打开longtimer类模块,加入如下程序代码:
optionexplicit
publiceventtick()''''声明事件
privatenzasinteger
privatecsasinteger
privatem_formasform1
privatewitheventsm_timerastimer''''声明对象类变量
''''返回enable属性值
publicpropertygetenabled()asboolean
enabled=m_timer.enabled
endproperty
''''设置enable属性值
publicpropertyletenabled(byvalvnewvalueasboolean)
m_timer.enabled=vnewvalue
endproperty
''''返回interval属性值
publicpropertygetinterval()aslong
interval=m_timer.interval
endproperty
''''设置interval属性值
publicpropertyletinterval(byvalvnewvalueaslong)
cs=0
nz=vnewvalue\65536+1
m_timer.interval=vnewvalue\nz
endproperty
''''类初始化事件
privatesubclass_initialize()
setm_form=newform1
loadm_form
setm_timer=m_form.timer1
endsub
''''类终止事件
privatesubclass_terminate()
unloadm_form
setm_timer=nothing
endsub
''''产生tick事件
privatesubm_timer_timer()
cs=cs+1
ifcs>=nzthen
raiseeventtick
cs=0
endif
endsub
窗体form1只用来作计时器timer1的载体,不用于显示。
2.测试newtimer.dll
对activexdll部件进行测试,与标准的exe程序一样,可分为单步运行或全运行。在写完所有程序代码后,建议用户先用ctrl+f5进行全编译执行,发现检查newtimer程序的语法错误。也可建立一个测试工程与newtimer链接进行测试,针对由newtimer类模块提供的每个属性和事件,添加测试代码来测试它们的属性和方法。按f8,进入单步运行状态,逐个语句察看对newtimer类模块的调用情况。
3.编译newtimer.dll
完成测试,排除所有错误后,从“文件(f)”菜单中选择“生成newtimer.dll(k)”命令,编译生成newtimer.dll文件。编译成功后newtimer.dll文件将自动注册到windows注册表中,
4.引用newtimer.dll
引用activexdll部件同引用其他对象一样,从“工程(p)”菜单中选择“引用(n)”命令,打开引用窗口,从引用列表中选中newtimer对象。如果是第一次引用newtimer,则在引用窗体上单击“游览(b)”命令按钮,将newtimer.dll文件添加到可引用列表框中方可使用。
5.调用newtimer.dll
在应用程序中加入下述程序代码,实现参newtimer.dll的调用:
optionexplicit
dimwitheventslongtimer1aslongtimer
privatesublongtimer1_tick()
print"时间到,此处添加处理程序"
endsub
privatesubcommand1_click()
longtimer1.interval=12000‘两分钟
longtimer1.enabled=true
endsub
privatesubform_load()
setlongtimer1=newlongtimer
endsub
参考文献
[2]东箭工作室.visualbasic5.0中文版程序设计.清华大学出版社,1997
[3]evangelospetroutsos.visualbasic5从入门到精通.北京:电子工业出版社,1997