Ich versuche die verbleibene Zeit eines Downloads wie folgt zu berechnen:
Delphi-Quellcode:
procedure TLizenz.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
var i:Integer;
begin
if (GetTickCount - FTime) >= 1000 then
begin
label8.caption := Format('%.2f KB/s', [(AWorkCount - FBytes) / (GetTickCount - FTime)]);
Label11.Caption:=Format('%.0f', [(AWorkCount - FBytes) / (GetTickCount - FTime)]);
i:=StrToInt(Label11.Caption);
FTime := GetTickCount;
FBytes := AWorkCount;
Label6.Caption := 'Download läuft ! '+' ('+inttostr(AWorkCount div 1024)+' kB von '+inttostr(IdHTTP1.Response.ContentStream.Size div 1024)+' kB)';
Gauge1.Progress := AWorkCount*100 div IdHTTP1.Response.ContentStream.Size;
Gauge1.MaxValue := IdHTTP1.Response.ContentStream.Size;
Gauge1.Progress := AWorkCount;
//geladene Bytes von Gesamtbytes abziehen
Label10.Caption:=inttostr(IdHTTP1.Response.ContentStream.Size - AWorkCount);
//und das ganze dividieren mit der Geschwindigkeit
Label13.Caption:=IntToStr(StrToInt(Label10.Caption) div i;
application.ProcessMessages;
end;
end;
Label13 gibt mir nun eine Ganzzahl aus. Wie formatiere ich nun letztenendes in Stunde, Minute, Sekunde?