关于程序运行中状态的表示的问题
由于程序需要读取大量文件,所以运行时间比较长,为了让用户了解当前程序正在运行中,所以想在程序运行的时候,弹出一个画面,显示进度条
应该如何实现?
[解决办法]
这个和API 没有太大关系,ProgressBar的无非不就是在min,max,Value三个属性上下功夫。
以拿读northwind中的Order Details读进msflexgrid为示范
Private Sub Command1_Click()
Dim i As Long
If Rs.State <> adStateClosed Then Rs.Close
Rs.Open "select ProductID,UnitPrice from [Order Details] ", Conn, adOpenStatic, adLockReadOnly
If Rs.RecordCount = 0 Then Exit Sub
For i = 1 To Rs.RecordCount
With Me.MSFlexGrid1
.Row = i
.Col = 1
.Text = Trim(Rs( "ProductID ") & " ")
.Col = 2
.Text = Trim(Rs( "UnitPrice ") & " ")
.Rows = .Rows + 1
Rs.MoveNext
With Me.ProgressBar1
.Min = 0
.Max = Rs.RecordCount
.Value = i
End With
End With
Next
MsgBox "数据已读完 "
End Sub
另外,对于安装进度或者其他,进度条的数据不一定是准确的,可以用trimer做一个大体的判断。
[解决办法]
msgbox "Start "
doevents
.....处理
msgbox "End "
你循环的时候加上doevents就好了
[解决办法]
学习
[解决办法]
在读文件时 读取文件的全部行数 作为进度条的maxvalue
同时读文件 读当前行数 作为进度条的value
注意d=doevents() 显示进度条就OK了~
[解决办法]
读取文件的过程中要doevents,之前之后加的效果甚微,用多线程好些;
在你的空间、你的技术社区、你的社区积分看啊,
别光看要记得给分
[解决办法]
路过.....................
[解决办法]
你可以做一个单独的程序A,按一定时间去读注册表里的一个键值,这个值就是程序的运行状态
当程序B需要用到A时就调用A,然后写注册表控制它。
[解决办法]
用GetSetting读用SaveSetting写
具体用法看MSDN帮助