进度条问题

scauABit 2011-03-23 12:04:24
想做一个进度条,当我查询数据的时候,因为数据量比较大,需要等待。计划做一个进度条,该进度条每秒进一格,10秒一个循环。主要是告诉客户,数据在查询中。求代码。
...全文
323 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
小猫鼬maki 2011-10-11
  • 打赏
  • 举报
回复
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<title>I Love you</title>
<head>






<style type="text/css">
*{
padding:20px 20px;
margin:20px;
}

#jindutiao{
margin:30px;
width:500px;
height:200px;
border:10px solid red;
}
#son{
width: 10;
height: 10px;
background-color: black;
}
#grandson{
margin:20px 0 0 0;
text-align;center;
background-color;yellow;
}

</style>
<script language="JavaScript">
var i=0;
function go(){
// alert("hello");
var code = document.getElementById("son").style.width=i+"px";
// alert("world");
if(i<=299) {
i++;
t=setTimeout("go()",50);//这里改变速度.
}
var step=Math.floor(i/3);
if(step<100){

document.getElementById("grandson").innerHTML="正在安装"+step+"%";
}else {
document.getElementById("grandson").innerHTML="已经安装成功,感谢你试用本产品。";
}
}
</script>

</head>
<body>
<div id="jindutiao">
<div id="son"></div>

<div id="grandson"></div>
</div>
<input type="button" value="开始" onclick="go()"/>
</body>
<html>
sharebei 2011-04-14
  • 打赏
  • 举报
回复
进度条太死板,因为不知道何时能够查询完成,如果进度条进度值很小,查询完成时,突然填满,看着多纠结.

动态显示在查询就可以了.
notebook800 2011-04-14
  • 打赏
  • 举报
回复
GIF动画,或者AVI
蓝色光芒 2011-04-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 bdmh 的回复:]
ado可以设置异步读取,你查一下自理,他有一个事件,可以获得已加载多少条数据,你可以先把count值select出来,然后根据事件中的参数,去控制进度条
[/Quote]

楼主应该多从这个方面去研究
likeyrain 2011-04-14
  • 打赏
  • 举报
回复
还是觉得一楼的方法好些
ado_cc 2011-04-14
  • 打赏
  • 举报
回复
newfang 2011-04-14
  • 打赏
  • 举报
回复
使用分页显示吧~~显示那一部分就查那一部分~~
goalone1985 2011-04-14
  • 打赏
  • 举报
回复
好久没来了!顶一个!还是总能看到bdmh大侠
风之谷 2011-04-14
  • 打赏
  • 举报
回复
progerssbar.max:=qry.recordcount
while true do
begin
application.handlemessage;
progerssbar.postion:=qry.recno;
if qry.eof then break;
end;
imonsoft2011 2011-04-14
  • 打赏
  • 举报
回复
使用这个Gauge控件就可以实现
Allanlove 2011-04-13
  • 打赏
  • 举报
回复
用timer不行,需要用线程,如果问题还没有解决,你加我qq,53142636,我发你个以前做的,看看可以解决你的问题不
lw19860412 2011-03-26
  • 打赏
  • 举报
回复
ProgressBar1的max = 100;
ProgressBar1.Position:= (ProgressBar1.Position+10) mod 100 ;
dinoalex 2011-03-23
  • 打赏
  • 举报
回复
[code=Delphi(Pascal)]

procedure TForm1.Timer1Timer(Sender: TObject);
var
SystemTime: TSystemTime;
begin
GetLocalTime(SystemTime);
ProgressBar1.Position:= SystemTime.wSecond mod 10 ;
end;

[/Code]
scauABit 2011-03-23
  • 打赏
  • 举报
回复
要代码
dinoalex 2011-03-23
  • 打赏
  • 举报
回复
加个TIMER,就行了
dinoalex 2011-03-23
  • 打赏
  • 举报
回复
gif挺好!

scauABit 2011-03-23
  • 打赏
  • 举报
回复
你们还是没有看明白我的问题。我只需要每秒进一格就可以了。我不是要根据查询的条数来显示。
luxuewei5214 2011-03-23
  • 打赏
  • 举报
回复
查询的数据条数不好计算,楼上建议很不错
chenzhuo 2011-03-23
  • 打赏
  • 举报
回复
如果只是想告诉客户正在查询中,可以做一个GIF动画,查询前显示,完成后关闭就行了,不用纠结于进度条.
haitao 2011-03-23
  • 打赏
  • 举报
回复
这个需求是比较厚道的了
定时器是可以了

procedure TForm1.Timer1Timer(Sender: TObject);
begin
ProgressBar1.Position:= (ProgressBar1.Position+10) mod 100 ;
end;


ado的异步读取,到底行不行的啊?一直比较奇怪,因为有些查询,事先谁也不知道总需时的
加载更多回复(2)

5,402

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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