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 


本文标签: 属性 测试 计时器 时间