您的位置:程序门 -> vb ->



关于程序运行中状态的表示的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于程序运行中状态的表示的问题[已结贴,结贴人:cender]
发表于:2007-09-17 14:27:58 楼主
由于程序需要读取大量文件,所以运行时间比较长,为了让用户了解当前程序正在运行中,所以想在程序运行的时候,弹出一个画面,显示进度条
应该如何实现?
发表于:2007-09-17 15:02:411楼 得分:0
哪位大虾指导以下
发表于:2007-09-17 15:10:472楼 得分:25
这个和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做一个大体的判断。
发表于:2007-09-17 17:03:483楼 得分:0
我现在实现的方式是
msgbox   "start "
.....处理
msgbox   "end "

但是   start   的msgbox   出力之后,点击   ok,一般都是反应比较慢,对话框还停留着

不怎么直观

发表于:2007-09-17 17:04:184楼 得分:0
顺便问一句,
怎么看自己还有多少分可以用啊
发表于:2007-09-17 17:12:305楼 得分:10
msgbox   "start "
doevents
.....处理
msgbox   "end "

你循环的时候加上doevents就好了
发表于:2007-09-17 17:35:586楼 得分:5
学习
发表于:2007-09-18 09:53:457楼 得分:15
在读文件时   读取文件的全部行数   作为进度条的maxvalue
同时读文件   读当前行数     作为进度条的value
注意d=doevents()   显示进度条就ok了~
发表于:2007-09-18 10:19:028楼 得分:10
读取文件的过程中要doevents,之前之后加的效果甚微,用多线程好些;
在你的空间、你的技术社区、你的社区积分看啊,
别光看要记得给分
发表于:2007-09-18 11:50:459楼 得分:5
路过.....................
发表于:2007-09-18 21:35:4210楼 得分:0
多线程没用过
谁能给一个简单的例子

循环时候,用另外一个线程弹出信息。
发表于:2007-09-19 21:33:0811楼 得分:15
你可以做一个单独的程序a,按一定时间去读注册表里的一个键值,这个值就是程序的运行状态
当程序b需要用到a时就调用a,然后写注册表控制它。
发表于:2007-09-19 21:35:0912楼 得分:15
用getsetting读用savesetting写
具体用法看msdn帮助
发表于:2007-09-22 11:56:5813楼 得分:0
谢谢大家


快速检索

最新资讯
热门点击