·设为首页
·收藏本站  
·错误报告
您现在的位置: 首页>>理工论文>>计算机论文>>新闻

站长欢迎各位朋友投稿6366083#163.com(#换成@),本站永久免费,请各位朋友记住本站网址:www.lwen.net,别忘记介绍新朋友过来奥^_^

会员登陆
最近更新
有广告才有收入,网站才能发展。
VB中创建超长时间计时器对象
  发表时间:2005-9-28 15:12:29  浏览人次: 我要投稿
>关键词:Vb计时器对象VB系统中提供了固有计时器Timer控件,通过给计时器控件的Interval属性设置不同的数值,就可以控制计时器运行的时间间隔,但该属性是一个双字节的整型变量,最大值只能设置为65535,即只有65535毫秒,约一分钟多一点,在需要长时间计时时,该控件就无能为力了。本文给出用Timer控件创建一个超长时间的计时器对象,并将其编译成ActiveX DLL部件,供其它应用程序调用,可实现最大限度地利用代码的可重用性。下面给出这个超长计时器对象的编程设计过程,供读者参考选用。1.编写程序启动VB,新建一个ActiveX DLL工程,将工程命名为NewTimer,将类模块名Class1改名为LongTimer。在工程中添加一个窗体Form1,在窗体上加入一个Timer计时器控件Timer1。打开LongTimer类模块,加入如下程序代码:Option ExplicitPublic Event Tick()'声明事件Private nz As IntegerPrivate cs As IntegerPrivate m_Form As Form1Private WithEvents m_Timer As Timer'声明对象类变量'返回Enable属性值Public Property Get Enabled() As BooleanEnabled = m_Timer.EnabledEnd Property'设置Enable属性值Public Property Let Enabled(ByVal vNewValue As Boolean)m_Timer.Enabled = vNewValueEnd Property'返回Interval属性值Public Property Get Interval() As LongInterval = m_Timer.IntervalEnd Property'设置Interval属性值Public Property Let Interval(ByVal vNewValue As Long)cs = 0nz = vNewValue \ 65536 + 1m_Timer.Interval = vNewValue \ nzEnd Property'类初始化事件Private Sub CLASS_Initialize()Set m_Form = New Form1Load m_FormSet m_Timer = m_Form.Timer1End Sub'类终止事件Private Sub CLASS_Terminate()Unload m_FormSet m_Timer = NothingEnd Sub'产生Tick事件Private Sub m_Timer_Timer()cs = cs + 1If cs >= nz Then RaiseEvent Tick cs = 0End IfEnd Sub窗体Form1只用来作计时器Timer1的载体,不用于显示。2.测试NewTimer.DLL对ActiveX DLL部件进行测试,与标准的EXE程序一样,可分为单步运行或全运行。在写完所有程序代码后,建议用户先用Ctrl+F5进行全编译执行,发现检查NewTimer程序的语法错误。也可建立一个测试工程与NewTimer链接进行测试,针对由NewTimer类模块提供的每个属性和事件,添加测试代码来测试它们的属性和方法。按F8,进入单步运行状态,逐个语句察看对NewTimer类模块的调用情况。3.编译NewTimer.DLL完成测试,排除所有错误后,从“文件(F)”菜单中选择“生成NewTimer.dll(K)”命令,编译生成NewTimer.dll文件。编译成功后NewTimer.dll文件将自动注册到Windows注册表中,4.引用NewTimer.DLL引用ActiveX DLL部件同引用其他对象一样,从“工程(P)”菜单中选择“引用(N)”命令,打开引用窗口,从引用列表中选中NewTimer对象。如果是第一次引用NewTimer,则在引用窗体上单击“游览(B)”命令按钮,将NewTimer.DLL文件添加到可引用列表框中方可使用。5.调用NewTimer.DLL在应用程序中加入下述程序代码,实现参NewTimer.dll的调用:Option ExplicitDim WithEvents LongTimer1 As LongTimerPrivate Sub LongTimer1_Tick()Print "时间到,此处添加处理程序"End SubPrivate Sub Command1_Click()LongTimer1.Interval = 12000 ‘两分钟LongTimer1.Enabled = TrueEnd SubPrivate Sub Form_Load() Set LongTimer1 = New LongTimerEnd Sub参考文献[2]东箭工作室.Visual Basic5.0中文版程序设计.清华大学出版社,1997[3]Evangelos Petroutsos. Visual Basic5从入门到精通.北京:电子工业出版社,1997------------------------------------------------------------------------------作者简介:李湘江,男,工程师,主要从事网络、CAD、CAI、软件工程方面的应用研究。 作者单位:长沙交通学院信息与计算科学系长沙410076电话:0731-5219487(办)Email:lxjzy@263.net
文章搜索
关键字:
Copyright ©2005 - 2006 Lwen.Net      广告合作—QQ 1573351 Email:6366083#163.com(#换成@)