使用VB做秒表计时器
使用VB6.0使用timer控件计时,然后显示,可以获得毫秒位的数值吗.interval设为1我编了代码如下dimmasinterger(全局变量)m=m+1label1...
使用VB6.0 使用timer控件计时,然后显示,可以获得毫秒位的数值吗.interval设为1
我编了代码如下
dim m as interger(全局变量)
m=m+1
label1.caption=m
if m=999 then
m=0
end if
结果显示出来的只有10毫秒位的值和百毫秒位的数值和秒数位的值,次序是正确的
说明即使interval设成了1但是其实还是10毫秒1走 于是我改了代码如下 interval设成10 也就是让它10毫秒产生一个事件 一个事件里要a要循环10次 m要加10 也就是说m是1毫秒1加了
For a = 1 To 10
m = m + 1
Label1.Caption = m
If m = 999 Then
m = 0
End If
Next a
发现3位数中间的是10毫秒数最左边是摆好秒数最右边是秒数,和之前基本没区别知识次序换了换。难道说用timer是无法显示毫秒数的,有没有哪位好心人指点一下,我只是个VB初学者,复杂的方法用不来。
不要编的很复杂啊有木有还是用timer控件可以显示毫秒个位数的啊。 展开
我编了代码如下
dim m as interger(全局变量)
m=m+1
label1.caption=m
if m=999 then
m=0
end if
结果显示出来的只有10毫秒位的值和百毫秒位的数值和秒数位的值,次序是正确的
说明即使interval设成了1但是其实还是10毫秒1走 于是我改了代码如下 interval设成10 也就是让它10毫秒产生一个事件 一个事件里要a要循环10次 m要加10 也就是说m是1毫秒1加了
For a = 1 To 10
m = m + 1
Label1.Caption = m
If m = 999 Then
m = 0
End If
Next a
发现3位数中间的是10毫秒数最左边是摆好秒数最右边是秒数,和之前基本没区别知识次序换了换。难道说用timer是无法显示毫秒数的,有没有哪位好心人指点一下,我只是个VB初学者,复杂的方法用不来。
不要编的很复杂啊有木有还是用timer控件可以显示毫秒个位数的啊。 展开
展开全部
下面是一个时钟的代码,
在对象窗口需要画一个圆shape1,随便画三条线
接着运行就ok了.我试了就用一个timer和 line就行,只是要把line 在属性里改 index=0
Option Explicit
Private Sub Form_Load()
Timer1.Interval = 1000
Form1.Width = 4000
Form1.Height = 4000
Form1.Left = Screen.Width \ 2 - 2000
Form1.Top = (Screen.Height - Height) \ 2
End Sub
Private Sub Form_Resize()
Dim i, Angle
Static flag As Boolean
If flag = False Then
flag = True
'画出表盘12个点和时、分、秒共15个Line
For i = 0 To 14
If i > 0 Then Load Line1(i)'这里容易出错,要在line属性里设置index=0
Line1(i).Visible = True
Line1(i).BorderWidth = 5
Line1(i).BorderColor = RGB(0, 128, 0) '设置Line的粗细和颜色
Next i
End If
Scale (-1, 2)-(1, -2)
For i = 0 To 14
Angle = i * 2 * Atn(1) / 3
Line1(i).X1 = 0.9 * Cos(Angle)
Line1(i).Y1 = 0.9 * Sin(Angle)
Line1(i).X2 = Cos(Angle)
Line1(i).Y2 = Sin(Angle)
Next i
End Sub
Private Sub timer1_Timer()
Const HH = 0
Const MH = 13
Const SH = 14
Dim Angle
Angle = 0.5236 * (15 - (Hour(Now) + Minute(Now) / 60)) '设置时针
Line1(HH).X1 = 0
Line1(HH).Y1 = 0
Line1(HH).X2 = 0.3 * Cos(Angle)
Line1(HH).Y2 = 0.3 * Sin(Angle)
Angle = 0.1047 * (75 - (Minute(Now) + Second(Now) / 60)) '设置分针
Line1(MH).BorderWidth = 3
Line1(MH).X1 = 0
Line1(MH).Y1 = 0
Line1(MH).X2 = 0.7 * Cos(Angle)
Line1(MH).Y2 = 0.7 * Sin(Angle)
Angle = 0.1047 * (75 - Second(Now)) '设置秒针
Line1(SH).BorderWidth = 1
Line1(SH).X1 = 0
Line1(SH).Y1 = 0
Line1(SH).X2 = 0.8 * Cos(Angle)
Line1(SH).Y2 = 0.8 * Sin(Angle)
Form1.Caption = Str(Now()) '窗口显示精确的日期和数字化的时间now=date+time怎样显示星期几weekday?
End Sub
在对象窗口需要画一个圆shape1,随便画三条线
接着运行就ok了.我试了就用一个timer和 line就行,只是要把line 在属性里改 index=0
Option Explicit
Private Sub Form_Load()
Timer1.Interval = 1000
Form1.Width = 4000
Form1.Height = 4000
Form1.Left = Screen.Width \ 2 - 2000
Form1.Top = (Screen.Height - Height) \ 2
End Sub
Private Sub Form_Resize()
Dim i, Angle
Static flag As Boolean
If flag = False Then
flag = True
'画出表盘12个点和时、分、秒共15个Line
For i = 0 To 14
If i > 0 Then Load Line1(i)'这里容易出错,要在line属性里设置index=0
Line1(i).Visible = True
Line1(i).BorderWidth = 5
Line1(i).BorderColor = RGB(0, 128, 0) '设置Line的粗细和颜色
Next i
End If
Scale (-1, 2)-(1, -2)
For i = 0 To 14
Angle = i * 2 * Atn(1) / 3
Line1(i).X1 = 0.9 * Cos(Angle)
Line1(i).Y1 = 0.9 * Sin(Angle)
Line1(i).X2 = Cos(Angle)
Line1(i).Y2 = Sin(Angle)
Next i
End Sub
Private Sub timer1_Timer()
Const HH = 0
Const MH = 13
Const SH = 14
Dim Angle
Angle = 0.5236 * (15 - (Hour(Now) + Minute(Now) / 60)) '设置时针
Line1(HH).X1 = 0
Line1(HH).Y1 = 0
Line1(HH).X2 = 0.3 * Cos(Angle)
Line1(HH).Y2 = 0.3 * Sin(Angle)
Angle = 0.1047 * (75 - (Minute(Now) + Second(Now) / 60)) '设置分针
Line1(MH).BorderWidth = 3
Line1(MH).X1 = 0
Line1(MH).Y1 = 0
Line1(MH).X2 = 0.7 * Cos(Angle)
Line1(MH).Y2 = 0.7 * Sin(Angle)
Angle = 0.1047 * (75 - Second(Now)) '设置秒针
Line1(SH).BorderWidth = 1
Line1(SH).X1 = 0
Line1(SH).Y1 = 0
Line1(SH).X2 = 0.8 * Cos(Angle)
Line1(SH).Y2 = 0.8 * Sin(Angle)
Form1.Caption = Str(Now()) '窗口显示精确的日期和数字化的时间now=date+time怎样显示星期几weekday?
End Sub
北京赛康精益信息技术有限责任公司
2023-08-27 广告
2023-08-27 广告
作为北京赛康精益信息技术有限责任公司的工作人员,我无法具体推荐某一家发令电子计时系统品牌,因为选择合适的发令电子计时系统需要根据具体的应用场景和技术需求进行评估。市场上有很多品牌的发令电子计时系统,性能和质量也各不相同。您可以参考相关的产品...
点击进入详情页
本回答由北京赛康精益信息技术有限责任公司提供
展开全部
我试了你的代码,判断下来是你dim m as integer的位置放得不对,应该把它放在代码的最开始的地方。
更多追问追答
追问
我旁边不是注释了是全局变量吗,意思就是放在最前面了,你没有理解我的意思啊
追答
Dim m As Integer
Private Declare Function GetTickCount Lib "Kernel32" () As Long
Public Sub Sleep(ByVal msec As Long, Optional blnVar As Boolean = True)
Dim iTick As Long
iTick = GetTickCount
While GetTickCount - iTick < msec And blnVar
DoEvents
Wend
End Sub
Private Sub Form_Activate()
m = 0
Do While True
DoEvents
Sleep 1
m = m + 1
Label1.Caption = m
If m = 999 Then
m = 0
End If
Loop
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Declare Function timeGetTime Lib "winmm.dll" () As Long‘函数声明,时间精确到毫秒
dim a as long
Private Sub Form_Load()
a = timeGetTime'初始毫秒数
End Sub
'interval设为1
Private Sub Timer1_Timer()
Static c As Long
c = timeGetTime - a
Me.Text3.Text = c
If c > 999 Then
a = timeGetTime'初始毫秒数
End If
End Sub
dim a as long
Private Sub Form_Load()
a = timeGetTime'初始毫秒数
End Sub
'interval设为1
Private Sub Timer1_Timer()
Static c As Long
c = timeGetTime - a
Me.Text3.Text = c
If c > 999 Then
a = timeGetTime'初始毫秒数
End If
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询