procedure TForm1.IdFTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);begin
s:=IdFTP1.Size('SMSClient.exe'); //在这里获得的数据大小是149995
ProgressBar1.Position:=0;
ProgressBar1.Max:=s;
ProgressBar1.Min:=0;
Label1.Caption:='正在更新...' + IntToStr(AWorkCountMax);
end;procedure TForm1.IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
if ProgressBar1.Max > 0 then
begin
Label2.Caption:='已完成...'+IntToStr(AWorkCount) + ' bytes /' + IntToStr(ProgressBar1.Max) + ' bytes.';
ProgressBar1.Position := AWorkCount;
end
else Label2.Caption:=IntToStr(AworkCount) + ' bytes.'; //在这里下载完毕后AworkCount的字节是147899
end;
为什么AworkCount最后得到的下载数量大小和之前Size得到的不一样??下载后的文件运行没有问题的.
const AWorkCountMax: Integer);begin
s:=IdFTP1.Size('SMSClient.exe'); //在这里获得的数据大小是149995
ProgressBar1.Position:=0;
ProgressBar1.Max:=s;
ProgressBar1.Min:=0;
Label1.Caption:='正在更新...' + IntToStr(AWorkCountMax);
end;procedure TForm1.IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
if ProgressBar1.Max > 0 then
begin
Label2.Caption:='已完成...'+IntToStr(AWorkCount) + ' bytes /' + IntToStr(ProgressBar1.Max) + ' bytes.';
ProgressBar1.Position := AWorkCount;
end
else Label2.Caption:=IntToStr(AworkCount) + ' bytes.'; //在这里下载完毕后AworkCount的字节是147899
end;
为什么AworkCount最后得到的下载数量大小和之前Size得到的不一样??下载后的文件运行没有问题的.
结束的话,还有个WorkEnd事件,只要它发生了,就代表全部下载完成了
要取你在workend事件中,用winapi取得文件大小
结束后用SizeOf取得下载完文件的实际大小