请教老师这句问题出在哪里???

liangFM_2012 2012-06-20 06:55:47
Private Declare Function GetTickCount Lib "kernel32" () As Long

Public ite As Long
Public itc As Long

Private Sub Form_Load()
ite = GetTickCount
Text2.Text = 2
Text1.Text = Val(Text2.Text) * 1200 + ite
Text3.Text = Text1.Text


End Sub


请问Val(Text2.Text) * 1200 + ite这句这样写为什么得出来的结果不是2400+系统经过的时间。要怎么写才对???
...全文
129 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
of123 2012-06-25
  • 打赏
  • 举报
回复
直接用 Timer 函数有跨午夜的问题,需要特别处理。对在白天用没问题。

用 GetTickCount 可以运行 47 天,但长时间运行也存在计数器溢出问题。不过一般应用延迟个几十分钟,几小时应该问题不大。
clear_zero 2012-06-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 5 楼 的回复:

Text1.Text = Val(Text2.Text) * 1200 & ite


这位大哥,终于把你昐来了。不过,我意思是这样的:我在text2里写入一个数值,然后这个数值就*1200,然后再跟GetTickCount(Windows启动所经过的时间)相加。其实我是在写一个倒计时软件,以20分钟(就是以上的*1200)为单位。想要多少个……
[/Quote]
倒计时为什么不用timer呢?
of123 2012-06-25
  • 打赏
  • 举报
回复
Private Declare Function GetTickCount Lib "kernel32" () As Long

Public ite As Long

Private Sub Command1_Click()
ite = Val(Text2.Text)
ite = ite * 20 * 60 * 1000
Text1 = ite \ 1000
ite = ite + GetTickCount()
Timer1.Enabled = True
End Sub

Private Sub Form_Load()
Text2.Text = 2
Timer1.Enabled = False
Timer1.Interval = 1000
End Sub

Private Sub Timer1_Timer()
Dim tmp As Long

tmp = GetTickCount()
tmp = ite - tmp
If tmp <= 0 Then
Timer1.Enabled = False
Text1 = "0"
Else
Text1 = tmp \ 1000
End If
End Sub
liangFM_2012 2012-06-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

Text1.Text = Val(Text2.Text) * 1200 & ite
[/Quote]

这位大哥,终于把你昐来了。不过,我意思是这样的:我在text2里写入一个数值,然后这个数值就*1200,然后再跟GetTickCount(Windows启动所经过的时间)相加。其实我是在写一个倒计时软件,以20分钟(就是以上的*1200)为单位。想要多少个20分钟就从text2.text输入。不过我不知道我这样写对不对,因为GetTickCount是以毫秒计算,但我加这个*1200,好像.....!!!麻烦大哥指导下
东方之珠 2012-06-22
  • 打赏
  • 举报
回复
Text1.Text = Val(Text2.Text) * 1200 & ite
liangFM_2012 2012-06-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

GetTickCount返回的是Windows启动所经过的时间,但单位是:ms
[/Quote]

意思就是我后面应该*1200000才对???
liangFM_2012 2012-06-22
  • 打赏
  • 举报
回复
rivate Sub Form_Load()
ite = GetTickCount
text4.text=GetTickCount"加上这句就知道啦,用这个tex4的值加2400,跟tex1的值对比一下。
Text2.Text = 2
Text1.Text = Val(Text2.Text) * 1200 + ite
Text3.Text = Text1.Text


End Sub
supertankhzt 2012-06-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
不是2400+系统经过的时间
[/Quote]

你怎么知道不是?

从开机到GetTickCount函数执行的那一瞬间
经过了多少毫秒
莫非这你能精确地计算出?+2400后发现与程序运行结果不相符?
贝隆 2012-06-20
  • 打赏
  • 举报
回复
GetTickCount返回的是Windows启动所经过的时间,但单位是:ms

7,763

社区成员

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

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