如何设置ProgressBar显示文件拷贝的进度?

EternalBlue 2003-08-25 03:48:08
在程序中使用copyFileTo进行文件的拷贝,怎样设置ProgressBar显示其进度?
...全文
120 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ly_liuyang 2003-08-26
  • 打赏
  • 举报
回复
使用BlockWrite的方法才可以
要不是就ShellAPI的SHFileOperation文件操作,通过Windows的也可以的
tiexinliu 2003-08-26
  • 打赏
  • 举报
回复
拷贝文件时有进度显示
procedure TForm1.mycopyfile(sourcef,targetf:string);
var
FromF, ToF: file;
NumRead, NumWritten: Integer;
Buf: array[1..2048] of Char;
n:integer;
begin
AssignFile(FromF, sourcef);
Reset(FromF, 1); { Record size = 1 }
AssignFile(ToF,targetf); { Open output file }
Rewrite(ToF, 1); { Record size = 1 }
n:=0;
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
form1.label1.caption:=IntToStr(sizeof(buf)*n*100 div FileSize(FromF))+'100%';
application.ProcessMessages;
//显示进度
BlockWrite(ToF, Buf, NumRead, NumWritten);
inc(n);
until (NumRead = 0) or (NumWritten <> NumRead);
form1.Label1.Caption:='100%';
CloseFile(FromF);
CloseFile(ToF);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
mycopyfile('e:\components\tv2k-w2k.zip','c:\a.zip');
end;

EternalBlue 2003-08-26
  • 打赏
  • 举报
回复
结果还是不会-_-
crossbow 2003-08-25
  • 打赏
  • 举报
回复
for i := 0 to n do
begin
ProgressBar.position = i;
Application.ProcessMessage;
end;
EternalBlue 2003-08-25
  • 打赏
  • 举报
回复
如何得到已Copy的字节数??
EternalBlue 2003-08-25
  • 打赏
  • 举报
回复
能否说详细点?我没用过delphi,不知怎么设置progressBar,呵呵,别怪我菜
koma2003 2003-08-25
  • 打赏
  • 举报
回复
用FileSize()获得文件大小.
Integer((已Copy的字节数/文件大小)*100);

5,386

社区成员

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

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