procedure ... begin
procedure1; //此过程对应进度条1 procedure2; //此过程对应进度条2
end; 这个程序有两过程,procedure1及procedure2, 如何实现当执行procedure1时显示一个进度条1,procedure1执行完后进度条1消失 接着执行进度条2,procedure2执行完后进度条2消失。
即如何实现进度条与相关过程同步。
解决方案 »
- 程序员工资调查
- *************** 请问如何清空StringGrid中的所有数据 ********************
- 美国中央情报局在中国的最新发现
- 討論一下﹕類似office助手的功能是用一種什么機制實現的?
- 我该怎么办???????
- 两个小问题,每个15分
- 问一下,怎么判断Win98的RunOnce运行结束了呢?(问题有点长,打扰各位了^_*)
- delphi中的委托该如何理解
- 用dephi6开发B/S结构的程序
- 如何解决机器非正常关机或死机后,数据库数据丢失的问题。答对者100分相送!!!!
- 自己首次制作组件,遇到些问题,请教各位,第一个解决的分全部相赠.
- 高分求解,Delphi6+sql server2000的存储过程,分不够还可以再加
(如copy 文件夹,里面的文件数量很多 )可用
progressBar1.max = i ;{ i 只要与文件数量大致相当就可以,
不很精确控制进程条的 position,但用户也看不出来}
reapt
copyFile(f1,tof1)
progressBar1.Setpby(1)
until 所有文件copy结束
if progressBar1.Position < progressBar1.Max then
progressBar1.position := progressBar1.Max;
//----------------- 过程1完成
如果copy 一个(少量)很大的文件(上十M)
可用TFileStream copy文件
这样可以时刻的到文件的已复制的大小与总的大小(这样可以精确控制进程条的position)
//----------------------过程1完成你要进度条消失,把它的visible :=False 也可以
begin
ProgressBar1.Visible :=False;
ProgressBar2.Visible :=True;
Progress2Step;
end
else
ProgressBar1.StepIt;procedure Progress2Step;
begin
while (ProgressBar2.Position < ProgressBar2.Max) do
ProgressBar2.StepIt;
end;
改一下Label的提示
再设一下ProcessBar的Max,Postion就可以了
begin
ProgressBar1.Position:=ProgressBar1.Position+10;
if ProgressBar1.Position=100 then
begin
ProgressBar1.Hide;
ProgressBar2.Position:=ProgressBar2.Position+10;
end;
end;