注册 登录
编程论坛 VB6论坛

新手求助,怎么在某段程序运行结束后弹出一个对话框显示?

yishixunzhao 发布于 2013-06-08 14:15, 1046 次点击
在vb中实现一个温度控制,根据3分钟的实时温度绘制曲线!怎么设置当3分钟时间到了,曲线绘制完成的时候,弹出显示“确定”的对话框?谢谢啦O(∩_∩)O。。。
11 回复
#2
风吹过b2013-06-08 14:55
msgbox 函数,弹出 确定的对话框。

3分钟时间到,你绘制温度曲线时,是以为什么为 判断 绘制 完成了吗?
例如:每 100毫秒 绘制一个点?? 那计数到 3*60*10 次 为 3分钟。
#3
yishixunzhao2013-06-08 17:08
回复 2楼 风吹过b
是要用到时间控件作计时器吗?能不能在程序中找到相应程序段的结束位置,然后直接用msgbox?
#4
风吹过b2013-06-08 17:40
你 3分钟实时取温度并绘图,这个3分钟是你程序里指定????还是你到了3分钟后再停止取温度????

如果是你的程序到了3分钟会自己停下,那么在停下那个地方 加 msgbox 就可以了。

如果你的程序是死跑,到了3分钟不会自己停下,而是需要你 加个定时器告诉程序停下,并显示 确定。
  那么弄个 100毫秒的计时器,每次与 取当前时间,与开始时间做比较,达到 3 分钟,就告诉程序停止取温度,并且提示 确定。
#5
yishixunzhao2013-06-08 21:09
回复 4楼 风吹过b
嗯,谢谢哈!不过可能还有点儿问题哎
第一,这个3分钟不是程序中原有的,是用户自己随意设定的。也就是说我怎么设置时间控件,实时提取用户设定的这个时间值?
第二,是我没有找到这段程序结束的地方。就是加的Msgbox函数,总是提前显示出来的!
#6
penguinhzf2013-06-08 21:14
用时间控件就行了。
#7
yishixunzhao2013-06-09 08:54
回复 6楼 penguinhzf
可是怎么用时间控件提取用户设定的时间值,然后再定时呢?
#8
风吹过b2013-06-09 09:20
假设
 Option Explicit

Dim usertime As Date     '保存用户设定时间

Private Sub Command1_Click()
usertime = Time + 10 / 86400                         '10是设置为 10秒 ,86400 是一天的秒数 ,设置到期时间
Timer1.Enabled = True       '开计时器

End Sub

Private Sub Timer1_Timer()

If Time - usertime > 0 Then         '如果到了时间
    Timer1.Enabled = False          '关计时器
    MsgBox "时间到"
End If

End Sub
#9
yishixunzhao2013-06-09 11:08
嗯,也是刚接触VB,很多都不懂!真的很感谢版主能这么耐心!感动ing
额,不过,还是有点儿问题想请教了。。。

Private Sub Command1_Click()
Timer1.Enabled = True       '开计时器

End Sub

Private Sub Timer1_Timer()

Dim usertime As Integer
usertime = Text1              '可以从文本框中读取用户输入的时间(但是用户输入的时间是小时,该怎么转换呢?)
If Time > usertime Then          '如果到了时间   【【【这个地方Time是怎么比较的呢?】】】这样好像不对哦。。。
    Timer1.Enabled = False          '关计时器
    MsgBox "时间到"
End If

End Sub
#10
风吹过b2013-06-09 15:18
可以从文本框中读取用户输入的时间(但是用户输入的时间是小时,该怎么转换呢?)
小时, *3600 ,就可以转换为 秒。
然后用这个 设置 终止时间  
usertime = Time + 10 / 86400                         '10是设置为 10秒 ,86400 是一天的秒数 ,设置到期时间

Time 是内部函数,返回系统当前时间。

If Time > usertime Then          '如果到了时间   【【【这个地方Time是怎么比较的呢?】】】这样好像不对哦。。。
为了防止出错,不建立这样比较,而是做减法,然后与 0 来比较。
时间,系统在内部是保存为一个 浮点数,是一个相对 1900年1月1日 以来的 浮点数。整数部分是 天,小数部分是 小时和分钟及秒。
所以,时间之间可以做 加法和减法。
#11
yishixunzhao2013-06-21 10:25
回复 10楼 风吹过b
嗯嗯,不好意思,这才看到!谢谢,特别感谢!
之前的问题是解决了,不过最近新问题又出现了。。。。。。

 
    我们这用的是Timer控件计时,然后要计时好几个小时就会出现几分钟的误差了!【eg.定时4个小时,时间到了要过10分钟之后框框才会出来!】
我查了些资料说是Timer控件定时的精确度不高,要想实现长时间定时,可以使用API函数?是这样吗?可是该怎么做呢?
#12
风吹过b2013-06-21 10:45
我们这用的是Timer控件计时,然后要计时好几个小时就会出现几分钟的误差了!
-------------
如果你们用 Timer 控件 然后自己累加秒数,就会出现 误差累计,时间越长,误差越大。

用我 8楼,及10楼的方法计时就可以了。
只要定时器是 1秒触发一次, 误差就在 1 秒之内。
你也可以提高精度,定时器 设为 0.5秒触发一次,那么误差就更小了。
定时器的最小精度设置为 0.1秒,也就是 100 毫秒。

这种只能要判断时间的是否到了的程序,可以不使用 API 来取时间。
time 函数,就是调用的 系统API函数,然后返回给程序的。
1