在VB中用定时控件实现长定时操作
Timer控件可用来在一定时间间隔执行操作,然而,一个Timer控件的时间间隔取值最大为64.767毫秒,这意味着即使最长的时间间隔也不比一分钟长多少(大约64.8秒),也就是说一个Timer控件只能响应大约一分钟之内的事件。如果要响应长时间的事件,例如,要开发一个学习系统的自我测试或考试过程,需要限制一个考试时间,一般都在10~150分钟,开始自动计时,时间到报警考试结束。则需多个Timer控件配合使用,这样做显得既繁琐又不实用。其实,可以只用一个Timer控件,在其Timer过程中使用一个计数器,从而响应任意长时间间隔的事件。
下面是一个定时实例的部分代码:
控 件 属 性 设置的值
Label1 Caption ″请输入限定时间(分钟):″
Text1 Text ″″
Command1 Caption ″确认″
Timer1 Interval 60000
Enabled False
在窗体通用模块General里声明N、T两个变量,N作为计数器,T用来存放限定时间。
DIM N AS Integer
DIM T AS String
Command1- Click ( )
T=Text1.Text
Timer1.Enabled=True……
End Sub
Timer1- Timer( )
N=N+1
if n=val(T) Then
Beep
Timer1.Enabled=False
End if
End Sub
将定时器的Interval属性值设为60000,使得计数器每分钟加1,当然也可以设置为其他的值,如1000,这样就使得计数器每秒钟加1,但这样要浪费较多的系统时间。
处理多个具有相同要求的控件
我们往往有时需要处理多个具有相同特性的控件,如:把 100 个 Text 及 Label 的内容加起来。这时,我们可以使用下面的技巧:
1.如果是同一种类型的控件,我们可以使用控件组达到目标。
2.如果不是同一类型控件,控件组就无法使用,这时,我们还可以利用控件的 Tag 性,我们可以把每个控件设置一个 Tag 标志。在程序中,我们可以用下面代码来察看是否是我们需要的控件:
For i=0 To Controls.Count-1
If Controls(i).Tag = "MyTag" Then ......
Next i
Timer控件可用来在一定时间间隔执行操作,然而,一个Timer控件的时间间隔取值最大为64.767毫秒,这意味着即使最长的时间间隔也不比一分钟长多少(大约64.8秒),也就是说一个Timer控件只能响应大约一分钟之内的事件。如果要响应长时间的事件,例如,要开发一个学习系统的自我测试或考试过程,需要限制一个考试时间,一般都在10~150分钟,开始自动计时,时间到报警考试结束。则需多个Timer控件配合使用,这样做显得既繁琐又不实用。其实,可以只用一个Timer控件,在其Timer过程中使用一个计数器,从而响应任意长时间间隔的事件。
下面是一个定时实例的部分代码:
控 件 属 性 设置的值
Label1 Caption ″请输入限定时间(分钟):″
Text1 Text ″″
Command1 Caption ″确认″
Timer1 Interval 60000
Enabled False
在窗体通用模块General里声明N、T两个变量,N作为计数器,T用来存放限定时间。
DIM N AS Integer
DIM T AS String
Command1- Click ( )
T=Text1.Text
Timer1.Enabled=True……
End Sub
Timer1- Timer( )
N=N+1
if n=val(T) Then
Beep
Timer1.Enabled=False
End if
End Sub
将定时器的Interval属性值设为60000,使得计数器每分钟加1,当然也可以设置为其他的值,如1000,这样就使得计数器每秒钟加1,但这样要浪费较多的系统时间。
处理多个具有相同要求的控件
我们往往有时需要处理多个具有相同特性的控件,如:把 100 个 Text 及 Label 的内容加起来。这时,我们可以使用下面的技巧:
1.如果是同一种类型的控件,我们可以使用控件组达到目标。
2.如果不是同一类型控件,控件组就无法使用,这时,我们还可以利用控件的 Tag 性,我们可以把每个控件设置一个 Tag 标志。在程序中,我们可以用下面代码来察看是否是我们需要的控件:
For i=0 To Controls.Count-1
If Controls(i).Tag = "MyTag" Then ......
Next i