我说的是如何用代码编写?

解决方案 »

  1.   

    如果使用的是indy 控件可以在onwork 事件理控制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 := {(AverageSpeed + }(AWorkCount / 1024) / DLTime{) / 2};  if AverageSpeed > 0 then begin
        Sec := Trunc(((PGB.Max - AWorkCount) / 1024) / AverageSpeed);    S := Format('%2d:%2d:%2d', [Sec div 3600, (Sec div 60) mod 60, Sec mod 60]);    S := '  Ê£Óàʱ¼ä: ' + S ;
      end
      else S := '';  S := FormatFloat('0.00 KB/s',AverageSpeed) + '; ' + S;
      case AWorkMode of
        wmRead: StatusBar1.Panels[1].Text := '¸üÐÂËÙ¶È' + S;
        wmWrite: StatusBar1.Panels[1].Text := 'ÉÏ´«ËÙ¶È' + S;
      end;  if AbortTransfer then IdFTP1.Abort;  PGB.Position := AWorkCount;
      application.ProcessMessages;
    end;
      

  2.   

    TotalTime :=  Now - STime;//这里的 STime 是什么?
      

  3.   

    stime 是starttime,开始下载时候的时间。