模拟程序执行时间,用进度条来表示,也可以用倒计时来实现。
如果程序是简单的解压/复制文件,简单点的以文件为单位更新进度,复杂点的会会以字节为单位判断文件大小来判断进度
程序已经调试过了,直接上代码
DimEnv jindu//定义程序执行的总进度全局变量
jindu =0
jindu = grm_1()
jindu = grm_2()
jindu = grm_3()
jindu = grm_4()
jindu = grm_5()
jindu = grm_6()
/**
**功能说明:模拟程序执行时间用进度条来显示
**发表于:CSDN
**作者:大叔obnijeh
**时间:2020年11月
*如果程序是简单的解压/复制文件,简单点的以文件为单位更新进度,复杂点的会会以字节为单位判断文件大小来判断进度
*下面是通用的方式
*用定时器计算,不停计算当前进度情况,控件设计每200毫秒检测一次,
*其它程序也是一样,没有控件的用线程来实现。如java也可以观察者来实现。
*这是比较通用的实现方式。
*/
Event Form1.Timer1.Timer //这是个定时器
//value的值是进度条,100是进度条满,我们分成10份。用jindu来标识
TracePrint ("实时获取进度"&date&"-"& time & "jindu的值:"& jindu)
Form1.ProgressBar1.Value = Form1.ProgressBar1.Value + jindu
jindu = 0 //加完后清空
End Event
Function grm_1() //程序大约执行3秒,到此,我们预估是整个程序的5分之1
For i = 1 To 100
Delay 30
Next
jindu = 20//1.5秒加10,3秒就加20
grm_1 = jindu
End Function
Function grm_2() //程序大约执行3秒,到此,我们预估是整个程序的5分之2
For i = 1 To 100
Delay 30
Next
jindu = 20
grm_2 = jindu
End Function
Function grm_3() //程序大约执行3秒,到此,我们预估是整个程序的5分之3
For i = 1 To 100
Delay 30
Next
jindu = 20
grm_3 = jindu
End Function
Function grm_4() //程序大约执行3秒,到此,我们预估是整个程序的5分之4
For i = 1 To 100
Delay 30
Next
jindu = 20
grm_4 = jindu
End Function
Function grm_5() //程序大约执行1.5秒,到此,我们预估是整个程序的5分之4多一点
For i = 1 To 100
Delay 15
Next
jindu = 10
grm_5 = jindu
End Function
Function grm_6() //程序大约执行1.5秒,到此,我们预估是整个程序执行完毕!
For i = 1 To 100
Delay 15
Next
jindu = 10
grm_6 = jindu
End Function
运行效果如下:
其它复杂的程序按照这个思路就可以了。用上一些插件及配置文件会更加好。夜深人静,准备睡觉。