admin 管理员组文章数量: 1184232
2024年3月27日发(作者:大学教材下载网站pdf)
维普资讯
第20卷第2期
商洛师范专科学校学报
Journal of Shangluo Teachers CoHege
V01_20 No.2
2006年6月
June 2O06
VB中Timer控件的Interval属性修改
李彦广
(商洛学院计算机科学系,陕西商洛726000)
摘要:如何在VB程序中用Timer控件创建一个超长时问的计时器对象,将其编译成
AcdveX DLL部件,利用代码的可重用性,在其它应用程序中调用非常重要.
关键词:VB;计时器;对象;ActiveX DLL部件
中图分类号:TP311.53 文献标识码:A 文章编号:1008-3030(2006)02-41032—02
VB中提供了固有计时器Timer控件,通过给
计时器控件的Interval属性设置不同的数值,就
可以控制计时器运行的时间间隔,但该属性是一
个双字节的整型变量,最大值只能设置为65535,
即只有65535毫秒,约一分钟多一点,在需要长时
间计时时,该控件就无能为力了.如何用Timer控
件创建一个超长时间的计时器对象,并将其编译
成ActiveX DLL部件,供其它应用程序调用,可实
现最大限度地利用代码的可重用性就非常重要.
ongTitmer类模块,加入如下程序代码:
Option Explicit
Public Event Tick()
Private nz As Integer
Private CS As Integer
声明事件
Private m Form As Form1
Private WithEvents rrIJimer As Timer 声
明对象类变量
返回Enable属性值
1 Timer控件IntervaI属性使用与取值
1.1将Timer控件做如下设置:
Timer.enabled=true
ublPic Property Get Enabled()As Boolean
Enabled=rIlJimer.Enabled
End Property
timer.interval=1000/这是1秒钟激发一次
timer
tick事件
_
设置Enable属性值
Public Property Let Enabled(ByVal vNewValue
timer
tick事件中把你要实现的东西写进去,
_
As Boolean)
rrIJimer.Enabled=vNewValHe
End Property
可以在timer_tick中判断分钟或者小时比如你想
10分钟执行一次,可以把now的时间付给个变
量然后%10为0,就可以在条件为真时就可以了.
1.2 Interval属性的取值范围
返回Interval属性值
Public Property Get Interval()As ng
Interval=mTimer.Interval
_
Interval属性的有效值在0至65535之间,这就
意味着即使最长时间间隔也只是65.6秒,比一分
钟长不了多少,而且VB只有在Intervl属性值大于 a
0时,才会产生Tuner事件,这是要特别注意的地方.
End Property
设置Interval属性值
Public Property Let Interval(ByVal vNewValue
s tons)A
cs=0
2编写程序
启动VB,新建一个ActiveX DLL工程,将工
程命名为NewTimer,将类模块名Classl改名为
Long'["imer.在工程中添加一个窗体Form1,在窗体
上加入一个Timer计时器控件Timer1.打开
收稿日期:20o6-_03—05
nz=vNewValue\65536+l
rrIJimer.Interval=vNewValueknz
End Property
作者简介:李彦广(1978-),男,陕西镇安人,商洛学院计算机科学系助教
维普资讯
第2期 李 华,刘雅莉:MATLAB在大学电子类课程教学中的应用 33
类初始化事件
Private Sub CIASS
_
Initialize()
Set m
_
Form=New—-Form l
Load m Form
SetⅡI_Timer-=m_Form.Timerl
End Sub
类终止事件
Private Sub CIASSJ’erminate()
Unload m Form
Set m
_
Timer=Nothing
End Sub
产生Tick事件
Private Sub nLTimeLTimer()
CS:CS ̄1
If cs>=nz Then
RaiseEvent Tick
cs=0
End If
End Sub
窗体Form1只用来作计时器Timerl的载体,
不用于显示.
3测试和编译NewTimer.DLL
3.1测试NewTimer.DLL
对AcfiveX DLL部件进行测试,与标准的EXE
程序一样,可分为单步运行或全运行.在写完所有
程序代码后,建议用户先用Ctrl+F5进行全编译执
行,发现检查NewTimer程序的语法错误.也可建
立一个测试工程与NewTimer链接进行测试,针
对由NewTimer类模块提供的每个属性和事件,
添加测试代码来测试它们的属性和方法.按F8,进
入单步运行状态,逐个语句察看对NewTimer类模
块的调用情况.
3.2编译NewTimer.DLL
完成测试,排除所有错误后,从“文件(F)”菜
单中选择“生成NewTimer.all(K)”命令,编译生成
NewTimer.dll文件.编译成功后NewTimer.dll文件
将自动注册到Windows注册表中.
4引用和调用NewTimer.DLL
4.1引用NewTimer.DLL
引用ActiveX DLL部件同引用其他对象一
样,从“工程(P)”菜单中选择“引用(N)”命令,打
开引用窗口,从引用列表中选中NewTimer对象.如
果是第一次引用NewTimer,则在引用窗体上单击
“游览(B)”命令按钮,将NewTimer.DLL文件添加
到可引用列表框中方可使用.
4.2调用NewTimer.DLL
在应用程序中加入下述程序代码,实现参
NewTimer.dll的调用:
Option Explicit
Dim WithEvents LongTimerl As LOngTimer
Private Sub LongTimerl_Tick()
Print”时间到,此处添加处理程序”
End Sub
Private Sub Command l Clickf 1
OLngTimer1.Interval=12000 两分钟
oLngTimer1.Enabled=True
End Sub
Private Sub Form
_
Load()
Set LongTimerl=New LongTimer
End Sub
5应用举例
要求:每3个小时要程序扫描一下数据库
Private Sub Form
_
oLad()
Timer1.Enabled=True
Timer1.Interval=lO000
End Sub
Private Sub Timerl Timer(1
Static OutTime As Long
OutTime=OutTime+1
If OutTime>=l 80 Then
OutTime=0
你的代码
Debug.Print Now
End If
End Sub
直接调用系统时间就好了.
程序开始运行就去系统时间.
Private Sub Form
_
oLad()
x=NOW
Me.Timer1.Interval=6000o
End Sub
Private Sub Timerl
_
Timer()
If DateDif("h”,x,Now1>3 Then
x=Now
维普资讯
第2期 张小斌,唐养璇:商洛半夏块茎腐烂病的原因初探及防治对策 39
A Preliminary Study on Reasons of shangluo Pinellia S
Block Stem Rotten Disease and Preventing Measures
ZHANG Xiao—bin.TANG.Yang—xuan
(Biological Medicine Engineering Dept.of Shangluo University,S ̄angluo Traditional Chinese
Medicinal Materils GAP Praoject Centre of Scientiifc Research,Shangluo,Shaanxi,726000)
Abstract:Block stem rotten disease has always been one of the major factors affecting Shangluo
Pinellia output and quality.As to this phenomenon。a prelimingary study is done on reasons for it and,
thrush comparative experiment,preventing measures are tried and proved effective.
Key words:Shangluo rle1lj Bl0ck stem rotten sickness;Reason;Preventing and controlling countermeasure
(上接第33页)
Prirate Sub Form_Load()
Timer1.Enabled=True
Timer1.Interval=60000
End Sub
Timer控件是VB系统中固有的计时器,其属
性不是很多,interval属性是比较常用的,通常情
况下其值是0,运行时不可见,它在动画制作、定
期执行某个操作起重要作用.
参考文献
[1】张树兵.Visual Basic6.0入门与提高 】.北京:清华大
学出版社,1999.
Prirate Sub Timerl_Timer()
Static limitedTime As Long
limitedTime=limitedTime+l
If limitedTime>=30 Then
M ̄Sltox“已经间隔了3个小时了,准
[2】VB部件工具 】.电脑报合订本,1997.
[3]徐松林.PowerBuilder数据库应用开发教程 】.北京:清
华大学出版社。2o00.
备工作!”
做你要做的事
limited=0
[4】东箭工作室.Visual Basic5.0中文版程序设计 .北京:
清华大学出版社,1999.
End If
End Sub
[5】微软公司.Visual Basic程序设计100例[M】.北京:清华
大学出版社,1999.
(责任编辑:张国春)
6结束语
The Modiicatifon of Interval S Property of Timer
Controller in VB programming
LI Yan-guang
(Computer Science Dept.of Shangluo University,Shangluo,Shamaxi 726000)
Abstract:How to create the object of timer controller in the VB programmig,nnd taranslate it into
ActiveX.DLL.It is importnta to make Use of double attribute code in other application programming.
Keywords:VB;Timer;Object;ActiveX DLL Components
版权声明:本文标题:VB中Timer控件的Interval属性修改 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1711526781a598394.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论