admin 管理员组文章数量: 1086019
2024年3月27日发(作者:html中a标签href)
维普资讯
第1卷第3期
贵阳学院学报(自然科学版) (季刊)
JOURNAL OF GUIYANG COLLEGE
Vo1.1 No.3
2006年9月
Natural Sciences(Quarterly)
VB中计时器控件的长定时初探
周 强
(贵阳学院继续教育部,贵州贵阳550003)
摘要:Windows应用程序中通常要用到时间控制的功能,VB中定时器Timer控件不能进行
长定时,最大间隔时间是1分多钟,如需要长时间计时,该控件就无法完成。利用计数器和创
建超长时间计时器对象能较好地解决长定时问题。
关键词:VB;计时器;长定时
中图分类号:TP312 文献标识码:A 文章编号:1673—6125(2006)03—0018—03
Preliminary Study on Long-playing Timing of Timer
Component in Visual Basic
ZHOU Qiang
(Guiyang College,Guiyang Guizhou 550003,China)
Abstract:The function of time controlling is usually used in Windows application program.However,
the timer component in Visual Basic can not meet the demand of long—playing timing because of its
property of Interval just can be set one minute or a little more.If there is requirement to time for a long
time,this component is helpless.This problem can be solved through using a counter or building a tim—
er object that can time orf a very long time.
Key words:Visual Basic;timer;long—playing timing
目U菁
专门解决这方面问题的控件。Timer控件最
重要的是Interval即时间间隔属性,该属性
决定了时钟事件之间的间隔,以毫秒为单
位,取值范围为0~65535,因此,其最大时
间间隔不能超过65秒,即一分钟多一点的
时间。如果把Interval属性设置为1000,则
在Windows应用程序中常常要用到时
间控制的功能,如在程序界面上显示当前时
问,或者每隔多长时间触发一个事件等等。
Visual Basic中的Timer(时间)控制器就是
收稿口期:2006—05—20
作者简介:周
一
强(1973一),男,贵州贵阳人,贵阳学院继续教育部讲师。
l8一
维普资讯
表示每秒钟触发一个Timer事件。但这却
意味着Timer控件只能响应大约一分钟之
内的事件,在需要长时间计时时,该控件就
无能为力了。例如,我们要开发一个测试系
统,其测试过程需要限制一个确定时间,一
般都在10~150分钟,开始自动计时,时间
到报警测试结束。这就需多个Timer控件
配合使用,这样做显得繁琐又不实用。本文
采用两种方法来实现长定时问题。
1利用计数器实现长定时
用一个Timer控件,在其Timer过程中
使用一个计数器,从而响应任意长时间间隔
的事件。下面是一个定时实例的部分代码:
控件属性 设置的值
LabeUCaption
“请输入限定时间(分钟):”
Textl Tlext
‘‘ ’’
CommandI Caption
“确认”
Timerl Interval
6O00
Enabled False
在窗体通用模块General里声明n、t两
个变量,n作为计数器,t用来存放限定时
间。
DIM n AS Integer
DIM t AS Stirng
Commandl—Click()
t=Text1.Text
Timer1.Enabled=True……
End Sub
Timerl—Timer()
n=n+l
if n=veal(t、Then
Beep
Timer 1.Enabled=False
End if
End Sub
将定时器的Interval属性值设为6000,
使得计数器每分钟加1,当然也可以设置为
其他的值,如1000,这样就使得计数器每秒
钟加1,但这样要浪费较多的系统时间,运
行速度受影响。
2创建超长时间计时器对象
采用Timer控件来创建一个超长时间
的计时器对象,并将其编译成ActiveX DLL
部件,供其它应用程序调用,可实现最大限
度地利用代码的可重用性。
编写程序:启动VB,新建一个ActiveX
DLL下程,将工程命名为New Timer,将类模
块名Classl改为Long Timer。在工程中添
加一个窗体Forml,在窗体上加入一个Tim—
er计时器控件Timerl。打开Long Timer类
模块,加入如下程序代码:
Public Event Tick()’声明事件
Private nz As Integer
Private CS As Integer
Private m
——
Form As Forml
Private With Events m
_
Timer As Timer’
声明对象类变量
Public Property Get Enabled()As Boole—
an
Enabled=m
_
Timer.Enabled
End Property
‘设置Enable属性值
Public Property l et Enabled(By Val
vNewValue As Boolean)
m
_
Timer Enabled=vNewValue
End Propeny
‘返回Interval属性值
Public Property Get Interval()As Long
Interval=m
_
Timer.Interval
End Property
‘设置Interval属性值
Public Property let Interval(By Val
vNewValue As Long)
CS=0
nz=vNewValue\65536+l
m
_
Timer.Interval=vNewValue\nz
End Property
一
19—
维普资讯
‘类初始化事件
Private Sub CLASS Initialize()
Set m
—
Form=NewForml
Load m
Form
—
Set m
—
Timer=m
_
FOITf1.Timerl
End Sub
‘类终止事件
Private Sub CLASS Terminate()
Unload m
——
Form
Set m
—
Timer=Nothing
End Sub
‘产生Tick事件
Private Sub m3imer_Timer()
CS:CS+1
If es>=nz Then
Raise Event Tick
CS:0
End If
End Sub
窗体Form1只用来做计时器Timerl的
载体,不用于显示。
测试New Timer.DLL:对ActiveX DLL
部件进行测试,与标准的EXE程序一样,可
分为单步运行或全运行。在写完所有程序
代码后,先用Ctrl+F5进行全编译执行,如
发现检查New Timer程序的语法错误,也可
建立一个测试工程与New Timer链接进行
测试,针对由New Timer类模块提供的每个
属性和事件,添加测试代码来测试它们的属
性和方法。按F8,进人单步运行状态,逐个
语句察看对New Timer类模块的调用情况。
编译New Timer.DLL:完成测试,排除
所有错误后,从“文件(F)”菜单中选择“生
成NewTimer.dll(K)”命令,编译生成New
Timer.dll文件。编译成功后New Timer.dll
文件将自动注册到Windows注册表中,引用
New Timer.DLL:引用AetiveX DLL部件同
引用其他对象一样,从“工程(P)”菜单.中
一
2O一
选择“引用(N)”命令,打开引用窗口,从引
用列表中选中New Timer对象。如果是第
一
次引用NewTimer,则在引用窗体上单击
“浏览(B)”命令按钮,将New Timer.DLL文
件添加到可引用列表框中方可使用。
调用New Timer.DLL:在应用程序中加
人下述程序代码,实现New Timer.dll的调
用:
Option Explicit
Dim With Events LOngTimerl As Long—
time
Private Sub LongTimerl
—
Tick()
Print“时间到,此处添加处理程序”
End Sub
Private Sub Command l
—
Click()
oLngTimer1.Interval=1 2000‘两分钟
oLngTimer1.Enabled=True
End Sub
Private Sub Form Load()
Set LongTimerl=New Longtime
End Sl】b
结束语
以上两种方法初步解决了Timer控件
不能长定时的问题,因此可以增大其运用范
围和实用意义,但虽然解决了长定时问题,
若要求Timer控件在时问控制上有高精度,
还有待进一步探索。
参考文献:
[1]杨晶.VB6.0程序设计[M].北京:机械工业出
版社,2004.
[2]黄淼云,方楠.VB.NET控件应用编程实例教程
[M].北京:北京希望电子出版社.2003.
[3]东箭工作室.Visual Basic5.0中文版程序设计
[M].北京:清华大学出版社,1997.
[4]PETROUTSOS E.Visual Basic5从入门到精通
[M].北京:电子工业出版社,1997.
版权声明:本文标题:VB中计时器控件的长定时初探 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1711526981a598405.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论