Hi Lord,
wir kriegen das schon hin, also nimm mal die Schleife hier raus aus deinem Source:
Delphi-Quellcode:
try
repeat
// Damit sich das Programm nicht aufhängt
Application.ProcessMessages;
//Nun setzen wir den Start nach die bereits kopierten Bytes
IdHTTP1.Request.ContentRangeStart := BytesKopiert;
//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
IdHTTP1.Request.ContentRangeEnd := BytesKopiert+cFileSplitSize-1;
end
//Den rest der Datei
else IdHTTP1.Request.ContentRangeEnd := BytesInsgesamt;
Application.ProcessMessages;
//Den eingesttelten Teil herunterladen und ihn die Datei speichern
IdHTTP1.Get(Edit1.Text, lStream);
//Progress und Status aktualliesieren
Progress.Position := BytesKopiert;
Status.Caption := GetSizeName(BytesKopiert)+'/'+GetSizeName(BytesInsgesamt);
//BytesKopiert weiter setzen
BytesKopiert := BytesKopiert+cFileSplitSize;
until (BytesKopiert >= BytesInsgesamt); //Schleife beenden wenn datei fertig
finally
if Assigned(lStream) then lStream.Free; //FileStream freigeben wenn gesetzt
end;
und ersetze das durch
try
idHTTP1.Get(Edit1.Text, lStream);
Mom das natürlich natürlich wieder unten drunter
finally
if Assigned(lStream) then lStream.Free; //FileStream freigeben wenn gesetzt
end;