VB timer学习
评论(0) 浏览量(7886)

【例一】每隔2min在文本框新的一行上输出当前的系统时间及生成的10个(0,100)之间的随机整数,文本框带双向滚动条。

分析:由于定时器(Timer)的Interval属性的最大值为65535ms,要使程序能够间隔2min执行相关操作,就只能借用对系统时间的判断。本例中我们将Interval属性设置为1000,也就是说每隔一秒对系统时间进行一次判断,如果当前时间与起始时间的间隔达到了2min,则打印相关信息。

  VB timer学习

程序代码:

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,使按下该按钮即可让圆停止移动。

VB timer学习

程序代码:

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,使按下该按钮即可让欢迎词停止移动。

VB timer学习

程序代码:

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

转载自:http://www.longziyong.cn/post/413.html

没有登录不能评论