首页 > 文章中心 > 正文

计算机毕业vb中创建超长时间计时器对象

计算机毕业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