如何用进度条真正表示程序进度

l30191f 2019-01-17 03:36:05
我有一段程序,是把Excel中的数据导入到Word,由于时间较长,怕用户以为是死机了,我想在窗体上放一个进度条,表示程序的进度,可是问题来了:程序的进度怎么用进度条来表示呢?千万别说
ProgressBar1.Min=0
ProgressBar1.Max=10000
for i=0 to 10000
ProgressBar1.value=i
next i
我的意思是真正和程序进度对应,而不是假想出这个没用的东西。你懂得。。。?
...全文
603 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
l30191f 2019-01-20
  • 打赏
  • 举报
回复
引用 7 楼 舉杯邀明月 的回复:
[quote=引用 6 楼 l30191f 的回复:]
比如有这样的邮件合并程序:打开word,查找合并域并用excel数据源的数据替换(比如有10条记录),运行后时间较长,为避免用户以为死机了,增加一个有进度条的窗体,要求这个进度条就代表程序实际运行的进度,比如打开word很费时,可能占程序运行的一半时间以上,那么word打开后进度条显示的进度已超过一半,我不知道我说明白了没有?不是说有十条记录,完成一个人的就显示10%的意思。

这种事情,不可能“精确衡量”的!
也许这台机子上,打开Word用1秒,处理数据用3秒;
而另一台机子上,打开Word用0.8秒,处理数据用2秒……
这占的“时间比”都不一样,你也无法“实时预算”!

有一些“进度指示”,按过程中要做的事情,会占多少“工作时间”,
 大概指示一下就行了,干吗要“精确”进度?
 再说这也不现实、你要处理的事务也无法“精确”的。

参考一下我的方式吧,自己“大约估计”一下进度就行了。
我下面这些“过程时间”都是随便估计的。
并且我也没用进度条控件,是一个label控件,改变其宽度指示一下。
[/quote]
我就是想知道有没有办法把进度条的进度和程序的真正进度对应起来,通过你的解释我知道了。
舉杯邀明月 2019-01-20
  • 打赏
  • 举报
回复
引用 6 楼 l30191f 的回复:
比如有这样的邮件合并程序:打开word,查找合并域并用excel数据源的数据替换(比如有10条记录),运行后时间较长,为避免用户以为死机了,增加一个有进度条的窗体,要求这个进度条就代表程序实际运行的进度,比如打开word很费时,可能占程序运行的一半时间以上,那么word打开后进度条显示的进度已超过一半,我不知道我说明白了没有?不是说有十条记录,完成一个人的就显示10%的意思。

这种事情,不可能“精确衡量”的!
也许这台机子上,打开Word用1秒,处理数据用3秒;
而另一台机子上,打开Word用0.8秒,处理数据用2秒……
这占的“时间比”都不一样,你也无法“实时预算”!

有一些“进度指示”,按过程中要做的事情,会占多少“工作时间”,
 大概指示一下就行了,干吗要“精确”进度?
 再说这也不现实、你要处理的事务也无法“精确”的。

参考一下我的方式吧,自己“大约估计”一下进度就行了。
我下面这些“过程时间”都是随便估计的。
并且我也没用进度条控件,是一个label控件,改变其宽度指示一下。
l30191f 2019-01-20
  • 打赏
  • 举报
回复
比如有这样的邮件合并程序:打开word,查找合并域并用excel数据源的数据替换(比如有10条记录),运行后时间较长,为避免用户以为死机了,增加一个有进度条的窗体,要求这个进度条就代表程序实际运行的进度,比如打开word很费时,可能占程序运行的一半时间以上,那么word打开后进度条显示的进度已超过一半,我不知道我说明白了没有?不是说有十条记录,完成一个人的就显示10%的意思。
zj_zwl 2019-01-19
  • 打赏
  • 举报
回复
进度是你告诉进度条, 如果自己都不知道, 它怎么知道?
脆皮大雪糕 2019-01-18
  • 打赏
  • 举报
回复
说句题外话,你问问题的方式,让看的人很不舒服。
脆皮大雪糕 2019-01-18
  • 打赏
  • 举报
回复
ProgressBar1.Min=0 ProgressBar1.Max=你要导入的数据条数 for i=0 to 你要导入的数据条数 TODO:导入第i条数据的操作 ProgressBar1.value=i next i
X-i-n 2019-01-17
  • 打赏
  • 举报
回复
请先给出“进度”的定义。
milaoshu1020 2019-01-17
  • 打赏
  • 举报
回复
试试这样行不行:
ProgressBar1.Min=0
ProgressBar1.Max=10000
for i=0 to 10000
ProgressBar1.value=i
if i mod 100 = 0 then
doevents
end if
next i
什么是SWFUpload?   SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统标签的文件上传模式。 [编辑本段]SWFUpload的主要特点   * 可以同时上传多个文件;   * 类似AJAX的无刷新上传;   * 可以显示上传进度;   * 良好的浏览器兼容性;   * 兼容其他JavaScript库 (例如:jQuery, Prototype等);   * 支持Flash 8和Flash 9;   SWFUpload不同于其他基于Flash构建的上传工具,它有着优雅的代码设计,开发者可以利用XHTML、CSS和JavaScript来随心所欲的定制它在浏览器下的外观;它还提供了一组简明的JavaScript事件,借助它们开发者可以方便的在文件上传过程中更新页面内容来营造各种动态效果。   在使用SWFUpload之前,请确认你具备一定的JavaScript和DOM知识。在实际开发中,大部分的错误都是由于错误的设置和低劣的Event Handlers处理程序所造成的。 [编辑本段]文档中文翻译   http://www.v-sky.com/doc/swfupload/v2.1.0/Documentation.html [编辑本段]效果演示   * Classic Form Demo http://demo.swfupload.org/formsdemo ;   * Features Demo http://demo.swfupload.org/featuresdemo ;   * Application Demo http://demo.swfupload.org/applicationdemo ;   * v1.0.2 Plugin Demo http://demo.swfupload.org/v102demo ; [编辑本段]选择合适的Flash控件   在发行包(SWFUpload v2)中含有2个版本的Flash控件(swfupload_f8.swf 与wfupload_f9.swf),其中第一个版本拥有最佳的兼容性,但是为此损失了部分功能;而第二个版本提供了一些附加的功能但是损失了兼容性。 [编辑本段]SWFUpload的初始化与配置   首先,在页面中引用SWFUpload.js ,如      然后,初始化SWFUpload ,如   var swfu;   window.onload = function () {   swfu = new SWFUpload({   upload_url : "http://www.swfupload.org/upload.php",   flash_url : "http://www.swfupload.org/swfupload_f9.swf", file_size_limit : "20480"   });   };   以下是一个标准的SWFUpload初始化设置所需的参数,你可以根据需要自己进行删减:   {   upload_url : "http://www.swfupload.org/upload.php", 处理上传请求的服务器端脚本URL   file_post_name : "Filedata", 是POST过去的$_FILES的数组名   post_params : {   "post_param_name_1" : "post_param_value_1",   "post_param_name_2" : "post_param_value_2",   "post_param_name_n" : "post_param_value_n"   },   file_types : "*.jpg;*.gif", 允许上传的文件类型   file_types_description: "Web Image Files", 文件类型描述   file_size_limit : "1024", 上传文件体积上限,单位MB   file_upload_limit : 10, 限定用户一次性最多上传多少个文件,在上传过程中,该数字会累加,如果设置为“0”,则表示没有限制   file_queue_limit : 2, 上传队列数量限制,该项通常不需设置,会根据file_upload_limit自动赋值   fl

1,502

社区成员

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

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