VB教程:记时器(Timer)

VB教程:记时器(Timer),第1张

13、记时器(Timer)

作用:通过定期激活Timer事件,使得Timer控件可以每隔一个时间段就执行一次Timer事件中的代码。

在Visual Basic中,可以使用定时器对象在指定的时间间隔中执行某组语句。定时器对象(Timer Object)是个看不见的秒表,利用它可以在程序中访问系统时钟。我们既可以把定时器对象用作一个煮蛋计时器从预定时刻计时,也可以用它实现程序中的某种延时功能,还可以在预定的时间间隔内重复执行某个动作。

在程序设计中,关于时间的处理是非常普遍的。对于年月、日期、时分等的时间处理可以使用时间函数,例如Year、Month、Day等。对于由系统时钟控制的定时响应处理,例如每隔一段时间就进行某种 *** 作,则可以使用定时器控件。

定时器控件的响应事件是时间。加入定时器控件后,在程序中可以通过按照一定的时间间隔执行 *** 作。定时器控件采用的方法是不断检查系统时钟,判断是否满足执行某项任务的要求。根据定时器的这种特性,我们可以进行后台处理工作。

Timer控件的大小固定无法调整,且在运行时不可见,所以在设计阶段不必顾及它的位置。

(1)属性

Interval属性——指定定时器事件发生的间隔毫秒数(可以通过EnabIed属性来禁止该属性生效)

语法结构:

object. Interval [ =milliseconds ]

其中:

object——对象表达式,其值是“应用于”列表中的一个对象;

milliseconds——数值表达式,指定毫秒数,milliseconds的设置值为:

0(缺省值):使Timer控件无效;

间隔的取值可在1—64,707之间(包括这两个数值,以毫秒计),即最长时间大约64.65秒

EnabIed属性——控制定时器是否生效

True——打开Timer控件,这时倒计时总是从其Interval属性的设置开始

False——关闭Timer控件

(2)Timer事件

它在一个Timer控件预定的时间间隔过去之后发生。

语法结构:

Private Sub object_ Timer ( [ index As Integer ])

创建Timer 事件程序用以告诉VB在Interval 到时该做什么。

(3)例子

例1:显示系统当前的时间和日期,并且可以随时改变系统的时间和日期。见教材P159。

界面:

Interval属性值为1000。

代码:

Private Sub Form_Load()

Text1.Text = Year(Date) '获取系统年份

Text2.Text = Month(Date) '获取系统月份

Text3.Text = Day(Date) '获取系统的日期

End Sub

--------------------------------------------------------------------------------

Private Sub Check1_Click()

If Check1.Value Then

Timer1.Enabled = True '当选中check1时,timer1控件起作用

Else

Timer1.Enabled = False

Text4.Text = ""

Text5.Text = ""

Text6.Text = ""

End If

End Sub

--------------------------------------------------------------------------------

Private Sub Command1_Click()

Dim mydate As Date

mydate = DateSerial(Text1.Text, Text2.Text, Text3.Text) 'dateserial()函数用于将变量类型转化为日期型

Date = mydate '给系统日期赋值,即更改系统日期

End Sub

--------------------------------------------------------------------------------

Private Sub Command2_Click()

Dim mytime As String

mytime = TimeSerial(Text4.Text, Text5.Text, Text6.Text)'timeserial()函数用于将变量类型转化为时间型

Time = mytime '更改系统时间

End Sub

--------------------------------------------------------------------------------

Private Sub Timer1_Timer()

Text4.Text = Hour(Time)

Text5.Text = Minute(Time)

Text6.Text = Second(Time)'获取系统时间

End Sub

[程序演示][程序下载]

例2:设计一个显示计时的程序。

界面:

定时器的Enabled属性设置为False,Interval=300。

代码:

Private Sub Command1_Click()

Timer1.Enabled = True '使定时器有效

End Sub

--------------------------------------------------------------------------------

Private Sub Command2_Click()

Timer1.Enabled = False '使定时器无效

End Sub

--------------------------------------------------------------------------------

Private Sub Command3_Click()

Label1.Caption = "0"'清0

End Sub

--------------------------------------------------------------------------------

Private Sub Command4_Click()

End

End Sub

--------------------------------------------------------------------------------

Private Sub Form_Load()

Me.Caption = Format(Now, "hh:mm:ss")

End Sub

--------------------------------------------------------------------------------

Private Sub Timer1_Timer()

Dim count As Long

count = Label1.Caption

count = count + 1 '累加

Label1.Caption = count

End Sub

在 VB 中使用 Timer 控件来实现倒计时功能很简单,你可以按照以下步骤进行编写:

添加 Timer 控件到窗体中,设置它的 Interval 属性为 1000(表示以毫秒为单位的计时器间隔)。

在窗体的 Load 事件中初始化倒计时的初始值:

Private Sub Form_Load()

Label1.Caption = "10"

End Sub

这里将倒计时的初始值设置为 10 秒。

在 Timer 控件的 Tick 事件中处理倒计时逻辑:

Private Sub Timer1_Timer()

Dim count As Integer

count = CInt(Label1.Caption) - 1 ' 计时器减一

If count >= 0 Then

Label1.Caption = CStr(count) ' 更新标签的显示文本

Else

Timer1.Enabled = False ' 停止计时器

Command1.Enabled = False ' 禁用按钮

MsgBox "时间到了!", vbInformation ' d出消息框提示

End If

End Sub

在 Tick 事件中,我们首先将标签的显示文本减一,然后判断计时器是否已经减到了 0。如果还没到 0,就更新标签的显示文本,继续等待下一次 Tick 事件;如果已经到了 0,就停止计时器、禁用按钮,并d出一个消息框提示计时结束。

在按钮的 Click 事件中启动计时器:

Private Sub Command1_Click()

Timer1.Enabled = True

Command1.Enabled = False

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11438660.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存