窗体放一个timer控件,放一个label控件,放一个commandbox控件,timer的enabled属性设为假,放上代码运行你就知道了,测试成功:Option ExplicitDim i As IntegerPrivate Sub Command1_Click() '10分钟 i = 600 Timer1.Enabled = True End SubPrivate Sub Timer1_Timer() i = i - 1 Label1.Caption = i - 1 If i = 0 Then MsgBox "运行程序!" End If End Sub
你可以在timer事件里设一个integer的变量,然后将时间设为一分钟执行一次, 当integer=10的时候运行你要执行的代码,然后将变量清为0,如: privte sub timer1_timer() dim i% if i%=10 then i%=0 '开始执行的代码 else i%=i%+1 end if end sub
^_^,忘了,Timer.Interval设为1000,即一秒。
VB中创建超长时间计时器对象 李湘江 邹筱梅 (长沙交通学院 信息与计算科学系 长沙410076)摘 要:本文介绍在VB程序中用Timer控件创建一个超长时间的计时器对象,将其编译成ActiveX DLL部件,利用代码的可重用性,在其它应用程序中调用。 关键词:Vb 计时器 对象VB系统中提供了固有计时器Timer控件,通过给计时器控件的Interval属性设置不同的数值,就可以控制计时器运行的时间间隔,但该属性是一个双字节的整型变量,最大值只能设置为65535,即只有65535毫秒,约一分钟多一点,在需要长时间计时时,该控件就无能为力了。本文给出用Timer控件创建一个超长时间的计时器对象,并将其编译成ActiveX DLL部件,供其它应用程序调用,可实现最大限度地利用代码的可重用性。下面给出这个超长计时器对象的编程设计过程,供读者参考选用。1.编写程序 启动VB,新建一个ActiveX DLL工程,将工程命名为NewTimer,将类模块名Class1改名为LongTimer。在工程中添加一个窗体Form1,在窗体上加入一个Timer计时器控件Timer1。打开LongTimer类模块,加入如下程序代码: Option Explicit Public Event Tick() '声明事件 Private nz As Integer Private cs As Integer Private m_Form As Form1 Private WithEvents m_Timer As Timer '声明对象类变量'返回Enable属性值 Public Property Get Enabled() As Boolean Enabled = m_Timer.Enabled End Property'设置Enable属性值 Public Property Let Enabled(ByVal vNewValue As Boolean) m_Timer.Enabled = vNewValue End Property'返回Interval属性值 Public Property Get Interval() As Long Interval = m_Timer.Interval End Property'设置Interval属性值 Public Property Let Interval(ByVal vNewValue As Long) cs = 0 nz = vNewValue \ 65536 + 1 m_Timer.Interval = vNewValue \ nz End Property'类初始化事件 Private Sub CLASS_Initialize() Set m_Form = New Form1 Load m_Form Set m_Timer = m_Form.Timer1 End Sub'类终止事件 Private Sub CLASS_Terminate() Unload m_Form Set m_Timer = Nothing End Sub'产生Tick事件 Private Sub m_Timer_Timer() cs = cs + 1 If cs >= nz Then RaiseEvent Tick cs = 0 End If End 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 Explicit Dim WithEvents LongTimer1 As LongTimer Private Sub LongTimer1_Tick() Print "时间到,此处添加处理程序" End Sub Private Sub Command1_Click() LongTimer1.Interval = 12000 ‘两分钟 LongTimer1.Enabled = True End Sub Private Sub Form_Load() Set LongTimer1 = New LongTimer End Sub
一个简单的例子,适用于要求不太高的地方: Dim oldtime As Date Private Sub Command1_Click() Timer1.Interval = 1000 oldtime = Now() Text1.Text = oldtime Timer1.Enabled = True End SubPrivate Sub Timer1_Timer() If DateDiff("s", oldtime, Now) >= 600 Then Text1.Text = Text1.Text + "," + CStr(Now()) Timer1.Enabled = False End If End Sub
'10分钟
i = 600
Timer1.Enabled = True
End SubPrivate Sub Timer1_Timer()
i = i - 1
Label1.Caption = i - 1
If i = 0 Then
MsgBox "运行程序!"
End If
End Sub
当integer=10的时候运行你要执行的代码,然后将变量清为0,如:
privte sub timer1_timer()
dim i%
if i%=10 then
i%=0
'开始执行的代码
else
i%=i%+1
end if
end sub
李湘江 邹筱梅
(长沙交通学院 信息与计算科学系 长沙410076)摘 要:本文介绍在VB程序中用Timer控件创建一个超长时间的计时器对象,将其编译成ActiveX DLL部件,利用代码的可重用性,在其它应用程序中调用。
关键词:Vb 计时器 对象VB系统中提供了固有计时器Timer控件,通过给计时器控件的Interval属性设置不同的数值,就可以控制计时器运行的时间间隔,但该属性是一个双字节的整型变量,最大值只能设置为65535,即只有65535毫秒,约一分钟多一点,在需要长时间计时时,该控件就无能为力了。本文给出用Timer控件创建一个超长时间的计时器对象,并将其编译成ActiveX DLL部件,供其它应用程序调用,可实现最大限度地利用代码的可重用性。下面给出这个超长计时器对象的编程设计过程,供读者参考选用。1.编写程序
启动VB,新建一个ActiveX DLL工程,将工程命名为NewTimer,将类模块名Class1改名为LongTimer。在工程中添加一个窗体Form1,在窗体上加入一个Timer计时器控件Timer1。打开LongTimer类模块,加入如下程序代码:
Option Explicit
Public Event Tick() '声明事件
Private nz As Integer
Private cs As Integer
Private m_Form As Form1
Private WithEvents m_Timer As Timer '声明对象类变量'返回Enable属性值
Public Property Get Enabled() As Boolean
Enabled = m_Timer.Enabled
End Property'设置Enable属性值
Public Property Let Enabled(ByVal vNewValue As Boolean)
m_Timer.Enabled = vNewValue
End Property'返回Interval属性值
Public Property Get Interval() As Long
Interval = m_Timer.Interval
End Property'设置Interval属性值
Public Property Let Interval(ByVal vNewValue As Long)
cs = 0
nz = vNewValue \ 65536 + 1
m_Timer.Interval = vNewValue \ nz
End Property'类初始化事件
Private Sub CLASS_Initialize()
Set m_Form = New Form1
Load m_Form
Set m_Timer = m_Form.Timer1
End Sub'类终止事件
Private Sub CLASS_Terminate()
Unload m_Form
Set m_Timer = Nothing
End Sub'产生Tick事件
Private Sub m_Timer_Timer()
cs = cs + 1
If cs >= nz Then
RaiseEvent Tick
cs = 0
End If
End 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 Explicit
Dim WithEvents LongTimer1 As LongTimer Private Sub LongTimer1_Tick()
Print "时间到,此处添加处理程序"
End Sub Private Sub Command1_Click()
LongTimer1.Interval = 12000 ‘两分钟
LongTimer1.Enabled = True
End Sub Private Sub Form_Load()
Set LongTimer1 = New LongTimer
End Sub
Dim oldtime As Date
Private Sub Command1_Click()
Timer1.Interval = 1000
oldtime = Now()
Text1.Text = oldtime
Timer1.Enabled = True
End SubPrivate Sub Timer1_Timer()
If DateDiff("s", oldtime, Now) >= 600 Then
Text1.Text = Text1.Text + "," + CStr(Now())
Timer1.Enabled = False
End If
End Sub