用idftp上传下载文件过程中,如何知道传输文件的总长度以及目前已经传输得字节数?(20分)

  • 主题发起人 主题发起人 loxtln
  • 开始时间 开始时间
L

loxtln

Unregistered / Unconfirmed
GUEST, unregistred user!
我的意思是想向用NMFTP一样能作一个传输过程的进度条。谢谢!
 
解决了,谁要分?来拿。
 
能给一份吗? 谢谢
email: huang13@21cn.com
 
看看namelysweet@sina.com

thanks
 
我也想看一看 tianxuewang@sina.com.cn
 
能给一份吗?谢谢。另外不知您是否用了indy的FTP控件?是否像有些网友说的速度较慢?
有好经验请多指教!rlpcdk@163.com
 
给我一份!!
sukunliang1983@yahoo.com.cn
 
给我一份!!
freeboot@163.com
 
全局变量 STime: TDateTime;
BytesToTransfer: LongWord;


procedure TForm1.IdFTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
begin
STime := Now;
if AWorkCountMax > 0 then ProgressBar1.Max := AWorkCountMax
else ProgressBar1.Max := BytesToTransfer;
AverageSpeed := 0;
end;


procedure TForm1.IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
Var
S: String;
TotalTime: TDateTime;
H, M, Sec, MS: Word;
DLTime: Double;
begin
TotalTime := Now - STime;
DecodeTime(TotalTime, H, M, Sec, MS);
Sec := Sec + M * 60 + H * 3600;
DLTime := Sec + MS / 1000;
if DLTime > 0 then
AverageSpeed := (AWorkCount / 1024) / DLTime;

S := FormatFloat('0.00 KB/s', AverageSpeed);
case AWorkMode of
wmRead: StatusBar1.Panels[1].Text := '下载速度 ' + S;
wmWrite: StatusBar1.Panels[1].Text := '上传速度 ' + S;
end;
StatusBar1.Update ;
ProgressBar1.Position := AWorkCount;
end;


procedure TForm1.IdFTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
StatusBar1.Panels[1].Text := '传送成功.';
ProgressBar1.Position := 0;
AverageSpeed := 0;
end;

 
后退
顶部