vb6.0 定时器控件使用???

chine_yan 2008-01-11 10:58:38
最近做了个小程序,想使用vb6.0 定时器控件实现延时功能,但是程序运行时出现死机(好像定时器未发生中断),请高手帮忙指教!!

实现功能:点击按钮“开始”后,每隔一个设定的延时后,“text1”的数自动增加
源程序如下:
Dim counter As Integer
Private Sub Command1_Click()
Dim i As Integer
counter = 0
i = 0
Do While True
If i > 1000 Then
i = 0
End If
Call delay(2)
i = i + 1
Text1.Text = Str(i)
Loop
End Sub

Private Sub Form_Load()
Timer1.Enabled = False
Timer1.Interval = 100
End Sub

Private Sub Timer1_Timer()
counter = counter + 1
End Sub

Private Sub delay(time As Integer)
Dim j As Integer
Timer1.Enabled = True
Do While counter < time
Loop
Timer1.Enabled = False
End Sub
...全文
1018 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
什么呀
chine_yan 2008-02-13
  • 打赏
  • 举报
回复
谢谢,波导终结者!搞定了!
波导终结者 2008-01-12
  • 打赏
  • 举报
回复
Do While True里没加DoEvents,当然就像死掉了。

在过程里定义Static counter as Long,而不是Dim XXX,变量就不会跟着过程重生了。
chinaren10101 2008-01-11
  • 打赏
  • 举报
回复
Dim counter As Integer
Private Sub Command1_Click()
Dim i As Integer
counter = 0
Timer1.Enabled = true
End Sub

Private Sub Form_Load()
Timer1.Enabled = False
Timer1.Interval = 100

End Sub

Private Sub Timer1_Timer()
counter = counter + 1
Text1.Text = Str(counter)
End Sub

这样行不?
  • 打赏
  • 举报
回复
这样做试一下:
Dim i As Integer
counter = 0
private sub timer1_timer()
Text1.Text = Str(i)
end sub
Private Sub Form_Load()
Timer1.Enabled = False
Timer1.Interval = 1000 '这个地方要据你的要求来设值了;

End Sub

Private Sub Command1_Click()
Timer1.Enabled = true
End Sub
Private Sub Timer1_Timer()
counter = counter + 1
Text1.Text = Str(counter)
End Sub
这样应该好了.二楼的那个在每次点开始后就会自动清空counter;

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧