vb中的计时器如何设计
VB中的Timer控件使用:
Timer
控件响应时间的流逝。它们独立于用户,编程后可用来在一定的时间间隔执行操作。此控件的一个一般用处是检查系统时钟,判断是否该执行某项任务。对于其它后台处理,
Timer 控件也非常有用。每个 Timer 控件都有 Interval
属性,指定定时器事件之间的毫秒数。除非禁止此属性,否则定时器在大致相等的时间间隔不断接受事件(称作定时器事件会更贴切)。在为 Timer 控件编程时应考虑对 Interval 属性的几条限制:
1.如果应用程序或其它应用程序正在进行对系统要求很高的操作─ 例如长循环、高强度的计算或者正在访问驱动器、网络或端口─ 则应用程序定时器事件的间隔可能比
Interval 属性指定的间隔长。2.间隔的取值可在 0 到 64,767 之间(包括这两个数值),这意味着即使是最长的间隔也不比一分钟长多少(大约 64.8 秒)。
3.间隔并不一定十分准确。要保证间隔准确,应在需要时才让定时器检查系统时钟,而不在内部追踪积聚的时间。
4.系统每秒生成 18 个时钟信号─ 所以即使用毫秒衡量 Interval 属性,间隔实际的精确度不会超过 18 分之一秒。
每个 Timer 控件必须要与窗体关联。因此要创建定时器应用程序就必须至少创建一个窗体(如果不需要窗体完成其它操作就不必使窗体可见)。
注意 在 Visual Basic 中,单词 "timer" 有好几种用法,每种都与 Timer
控件的工作有关。除了控件名和控件类型以外,"timer" 还用在定时器事件和定时器函数中。以下是一个报警器的具体代码设计过程:
在窗体上放置 Timer 控件
在窗体上放置 Timer 控件的方法与绘制其它控件的方法相同:单击工具箱中的定时器按钮并将它拖动到窗体上。
Timer 控件只在设计时出现在窗体上,所以可以选定这个控件,查看属性,编写事件过程。运行时,定时器不可见,所以其位置和大小无关紧要。
初始化 Timer 控件
Timer 控件有两个关键属性。
Option Explicit
Dim AlarmTime
Const conMinimized = 1
Private Sub Form_Click()
AlarmTime = InputBox("输入启动闹钟的时间", "VB 闹钟", AlarmTime)
If AlarmTime = "" Then Exit Sub
If Not IsDate(AlarmTime) Then
MsgBox "您输入的时间无效。"
Else ' 从 InputBox 返回的字符串使有效时间,
AlarmTime = CDate(AlarmTime) ' 将它作为一个日期/时间值存储在AlarmTime 中。
End If
End Sub
Private Sub Form_Load()
AlarmTime = ""
End Sub
Private Sub Form_Resize()
If WindowState = conMinimized Then ' 如果窗体被最小化, 在标题处显示时间。
SetCaptionTime
Else
Caption = "闹钟"
End If
End Sub
Private Sub SetCaptionTime()
Caption = Format(Time, "Medium Time") ' 使用中等时间格式显示时间。
End Sub
Private Sub Timer1_Timer()
Static AlarmSounded As Integer
If lblTime.Caption <> CStr(Time) Then
' 当前秒数与显示秒数不同。
If Time >= AlarmTime And Not AlarmSounded Then
Beep
MsgBox "启动闹钟在 " & Time
AlarmSounded = True
ElseIf Time < AlarmTime Then
AlarmSounded = False
End If
If WindowState = conMinimized Then
' 如果处于最小化状态, 每分钟都需更新窗体标题。
If Minute(CDate(Caption)) <> Minute(Time) Then SetCaptionTime
Else
' 否则每秒钟对标签的标题进行更新。
lblTime.Caption = Time
End If
End If
End Sub
2024-11-11 广告
Timer
控件响应时间的流逝。它们独立于用户,编程后可用来在一定的时间间隔执行操作。此控件的一个一般用处是检查系统时钟,判断是否该执行某项任务。对于其它后台处理,
Timer 控件也非常有用。
图 7.46 Timer 控件
每个 Timer 控件都有 Interval
属性,指定定时器事件之间的毫秒数。除非禁止此属性,否则定时器在大致相等的时间间隔不断接受事件(称作定时器事件会更贴切)。
在为 Timer 控件编程时应考虑对 Interval 属性的几条限制:
如果应用程序或其它应用程序正在进行对系统要求很高的操作─ 例如长循环、高强度的计算或者正在访问驱动器、网络或端口─ 则应用程序定时器事件的间隔可能比
Interval 属性指定的间隔长。
间隔的取值可在 0 到 64,767 之间(包括这两个数值),这意味着即使是最长的间隔也不比一分钟长多少(大约 64.8 秒)。
间隔并不一定十分准确。要保证间隔准确,应在需要时才让定时器检查系统时钟,而不在内部追踪积聚的时间。
系统每秒生成 18 个时钟信号─ 所以即使用毫秒衡量 Interval 属性,间隔实际的精确度不会超过 18 分之一秒。
每个 Timer 控件必须要与窗体关联。因此要创建定时器应用程序就必须至少创建一个窗体(如果不需要窗体完成其它操作就不必使窗体可见)。
注意 在 Visual Basic 中,单词 "timer" 有好几种用法,每种都与 Timer
控件的工作有关。除了控件名和控件类型以外,"timer" 还用在定时器事件和定时器函数中。
示例应用程序:Alarm.vbp
Alarm 示例 (Alarm.vbp,列在Samples
目录中)应用程序中包含了使用 Timer 控件的技巧。
在窗体上放置 Timer 控件
在窗体上放置 Timer 控件的方法与绘制其它控件的方法相同:单击工具箱中的定时器按钮并将它拖动到窗体上。
Timer 控件只在设计时出现在窗体上,所以可以选定这个控件,查看属性,编写事件过程。运行时,定时器不可见,所以其位置和大小无关紧要。
初始化 Timer 控件
Timer 控件有两个关键属性。
属性
设置值
Enabled
若希望窗体一加载定时器就开始工作,应将此属性设置为 True。否则,保持此属性为
False。有时可能选择由外部事件(例如单击命令按钮)启动定时器操作。
Interval
定时器事件之间的毫秒数。
注意,定时器的 Enabled 属性不同于其它对象的 Enabled 属性。对于大多数对象,Enabled 属性决定对象是否响应用户触发的事件。对于
Timer 控件,将 Enabled 设置为 False 时就会暂停定时器操作。
记住,Timer 事件是周期性的。Interval
属性主要是决定“多少次”而不是“多久”。间隔的长度取决于所需精确度。因为存在某些内部的错误可能性,所以应将间隔设置为精确度的一半。
注意
定时器事件生成越频繁,响应事件所使用的处理器事件就越多。这将降低系统综合性能。除非有必要,否则不要设置过小的间隔。
比如,timer1.interval=1000 '间隔1000ms即1s触发一次事件,在这个事件中,写代码:
Private Sub Timer1_Timer()
static t as integer
t=t+1
print t
End Sub
这样,每隔一秒就会输出一个数字,显示计数个数。
时间显示在哪里