【例一】每隔2min在文本框新的一行上输出当前的系统时间及生成的10个(0,100)之间的随机整数,文本框带双向滚动条。
分析:由于定时器(Timer)的Interval属性的最大值为65535ms,要使程序能够间隔2min执行相关操作,就只能借用对系统时间的判断。本例中我们将Interval属性设置为1000,也就是说每隔一秒对系统时间进行一次判断,如果当前时间与起始时间的间隔达到了2min,则打印相关信息。
Dim BeginTimer As Long, NowTimer As Long
Private Sub Form_Load()
BeginTimer = Timer() ' 返回从午夜开始到现在经过的秒数
End Sub
Private Sub Timer1_Timer()
NowTimer = Timer() + 119 ' 当前时间加119秒,从而使程序运行起始就能打印出第一条记录
If NowTimer - BeginTimer = 120 Then ' 如果当前时间与起始时间间隔120秒,则打印
Text1.Text = Text1.Text & Time() ' 在文本框中输出系统时间
Randomize
For i = 1 To 10 ' 在文本框中输出10个随机整数
Text1.Text = Text1.Text & " " & Int(101 * Rnd)
Next i
Text1.Text = Text1.Text & vbCrLf ' 在文本框中输出回车换行
BeginTimer = NowTimer ' 重置起始时间为当前时间,方便程序下一次的判断
End If
End Sub
【例二】让一个红色圆每隔1秒从当前位置向下移动100缇,当遇到窗体底部后,改成向上移动,而遇到窗体顶又改成向下移动……,直到按下某按钮后停止移动。
分析:在窗体上任意位置放一个Timer控件,并将其Interval属性设置为1000(1s)。在窗体适当位置放一个命令按钮Command1,使按下该按钮即可让圆停止移动。
Dim YiDongFangXiang As String ' 记录圆的移动方向
Private Sub Command1_Click()
Timer1.Enabled = False ' 停止圆的移动
End Sub
Private Sub Command2_Click()
Timer1.Enabled = True ' 停止圆的移动
End Sub
Private Sub Timer1_Timer()
If Shape1.Top + Shape1.Height >= Form1.ScaleHeight Then ' 圆顶端在窗体上的位置加上圆自身的高度大于窗体的内部高度(ScaleHeight)时,则说明圆已移到窗体底部
YiDongFangXiang = "上" ' 设置圆的移动方向为向上
ElseIf Shape1.Top <= 0 Then ' 圆顶端在窗体上的位置小于或等于0时,则说明圆已移到窗体顶部
YiDongFangXiang = "下"
End If
If YiDongFangXiang = "上" Then ' 根据以上所得移动方向设置圆在窗体上是向上还是向下移动
Shape1.Top = Shape1.Top - 100 '100为移动速度 即每秒移动的距离
Else
Shape1.Top = Shape1.Top + 100
End If
End Sub
【例三】让一行欢迎词从窗体的左侧逐渐移向右侧,当全部移出右侧后,又从窗体左侧开始移动,直到按下某按钮后停止移动。
分析:在窗体上任意位置放一个Timer控件,并将其Interval属性设置为1,从而使欢迎词在窗体上移动的更流畅。在窗体适当位置放一个命令按钮Command1,使按下该按钮即可让欢迎词停止移动。
Dim CX As Integer ' 全局变量,用于确定欢迎词在窗体上打印的X坐标
Private Sub Command1_Click()
Timer1.Enabled = False ' 停止欢迎词的移动
End Sub
Private Sub Command2_Click()
Timer1.Enabled = True ' 开始欢迎词的移动
End Sub
Private Sub Timer1_Timer()
Cls ' 清除上一次打印的信息
CurrentY = 200
CurrentX = CX
Print "欢迎访问LZY'Blog(http://www.longziyong.cn)!";
If CX >= Form1.Width Then ' 如果CX大于或等于窗体的宽度,则欢迎词已经全部移出窗体
CX = 0 ' CX置0,使欢迎词重新从窗体的左侧打印
Else
CX = CX + 2 ' 欢迎词在窗体上打印的位置向右边移动2缇
End If
End Sub