进度条显示问题(50分)

H

hnzgw

Unregistered / Unconfirmed
GUEST, unregistred user!
各位DELPHI高手,我在开发软件时有这样一个问题:每当我显示一个表单时因为我
在onshow事件中要处理某些动作,所以速度不是很快,我希望在我显示表单时也和
显示IE浏览器那样在状态处显示进度条,到进度显示100%时,表单刚好显示出来,这
种效果怎么实现,我分数不多了,我全部给出了,多谢了!!!!!
 
你在处理表但时每进行一步,就执行一步进度条的步骤。
执行完了进度条不就完了吗?[:D]
 
找本delphi的书,写的很清楚的。
 
CONST WM_PROCESS = WM_USER + 88;
type
TMainFM = class(TForm)
...
private
{ Private declarations }
procedure ShowProgress(Var Msg: TMsg);Message WM_PROCESS;
end;

procedure TMainFM.ShowProgress(Var Msg: TMsg);
begin
Gauge1.Progress:=Msg.message;
if Gauge1.Progress =100 then
Gauge1.Progress:=0;
Gauge1.ShowText:=Gauge1.Progress>0;
end;
在onshow事件中发送消息
SendMessage(handle,WM_PROCESS,进度值,0);
 
有谁做过这样的效果,请给个例子
flzgw@163.net
 
关注!!!
 
我坚信一定会有高手出现的!!!!!!!!!!!!!!!!!!
 
还等高手?

前面的不是都说的很清楚了吗?

自己试试就行了。难道非要把代码都给你写好?
 
薄荷说道对
 
第一,精确计算任务量。
第二,如果“一”比较困难,你可以设计一个过程,在任务完成前永远达不到100,但任务完成后
设置为100 ,并适当延时(一秒)。

比如 50+25+25/2+25/4+25/8,........
 
to:薄荷
我试过了,好像不对啊,你帮我试试看,真对不起大家,多次来烦你们,都因为我很急用
 
用一幅动画来代替如何?
 
agree with :delphiland
 
to delphiland

SendMessage(handle,WM_PROCESS,进度值,0);
进度值,是不是我自己定,比例我定10000,显示时,进度条反映都有没有,
怎么回事,大家都试试看,是我做的不对吗
 
看看delphi5/help/examples/prgrsbar
 
进度值是你自己定呀!
你在执行一条语句后,如果这条语句执行时间长,就把进度值大些,
比如:
原先是零
...
CreateSomething... (hard)
SendMessage(handle,WM_PROCESS,20,0);
dosomething ... (little hard)
SendMessage(handle,WM_PROCESS,30,0);
...
最后执行完
SendMessage(handle,WM_PROCESS,100,0);
最好先估计一下,可以用Gettickcount看看每条语句执行的时间

 
根本用不着消息!
 
顶部