Einzelnen Beitrag anzeigen

Benutzerbild von Daniela.S
Daniela.S

Registriert seit: 1. Mär 2008
Ort: Niederösterreich
226 Beiträge
 
Delphi XE4 Enterprise
 
#3

AW: Probleme mit 'IdHTTP + Fortschrittsanzeige' aus CodeLibrary

  Alt 18. Jun 2011, 10:29
Ohne jetzt vor Delphi zu sitzen... beim Kochen und ohne zu testen *gg* aber als Ansatz gedacht... du kannst auch die Statusanzeige in diesem Fall gleicht direkt in die repeat Schleife einbauen...

Delphi-Quellcode:
    fTime := GetTickCount;
    repeat
      // Damit sich das Programm nicht aufhängt
      Application.ProcessMessages;

      //Hier wird gebrüft ob die restlichen Bytes größer sind als cFileSplitSize
      if (BytesInsgesamt-BytesKopiert) > cFileSplitSize then
      begin
        //Hier wird einmal die cFileSplitSize eingestellt
        HTTPAutoUpdate.Request.Range := Format('%d-%d', [BytesKopiert, (BytesKopiert+cFileSplitSize-1)]);
      end
      else HTTPAutoUpdate.Request.Range := Format('%d-', [BytesKopiert]);

      Application.ProcessMessages;
      //Den eingesttelten Teil herunterladen und ihn die Datei speichern
      HTTPAutoUpdate.Get(RemotePath+fileName, lStream);
      //Progress und Status aktualliesieren
      AutoUpdateProgress.Position := BytesKopiert;
      AutoUpdateStatus.Caption := GetSizeName(BytesKopiert)+'/'+GetSizeName(BytesInsgesamt);
      //BytesKopiert weiter setzen
      BytesKopiert := BytesKopiert+cFileSplitSize;

      // jetzt Status aktualisieren
      if (GetTickCount - FTime) > 0) then begin
        SpeedStatus.caption := Format('%.2f KB/s', [BytesKopiert / (GetTickCount - FTime)]);
        FTime := GetTickCount;
        end;

    until (BytesKopiert >= BytesInsgesamt); //Schleife beenden wenn datei fertig
  Mit Zitat antworten Zitat