![]() |
Progressbar zu langsam??
Folgendes Problem: ich habe ein Onlineupdate in meinem Programm. Allerdings ergibt sich das Problem, dass der 'Verbleibend'-Counter eher bei 0 ankommt, als die Progressbar am Ende.
Delphi-Quellcode:
procedure TVPlan_Update.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer); var aktuell: Integer; begin Application.ProcessMessages; if (GetTickCount - FTime) >= 1000 then begin Label12.Caption := Format('%.2f KB/s', [(AWorkCount - FBytes) / (GetTickCount - FTime)]); FTime := GetTickCount; FBytes := AWorkCount; end; Fortschritt.Position:=AWorkCount; aktuell:=Round((Fortschritt.Max-AWorkCount)/1024); if aktuell>1024 then Label10.Caption:=FloatToStr(RoundTo((aktuell/1024),-2))+' MB ('+FloatToStr(Round((AWorkCount/Fortschritt.Max)*100))+' %)' else Label10.Caption:=IntToStr(aktuell)+' KB ('+FloatToStr(Round((AWorkCount/Fortschritt.Max)*100))+' %)'; end; |
Re: Progressbar zu langsam??
Vielleicht solltest einen Timer benutzen oder du hast das Maximum der Progressbar falsch!
|
Re: Progressbar zu langsam??
Hallo,
das Maximum der Progressbar stimmt völlig mit dem überein, was auch in der Berechnung des Dateirests verwendet wird (beides 1155921). Wie wäre dieser Timer deiner Meinung nach denn zu verwenden? Ich denke, du meinst dann halt damit auch, dass beides zur gleichen Zeit aktualisiert wird? Ist es denn sicher, dass dadurch solche 'Missverständnisse' verhindert werden können? |
Re: Progressbar zu langsam??
Das Problem tritt nicht zufällig nur unter Vista auf?
|
Re: Progressbar zu langsam??
Hallo,
ich hatte das problem auch mal. Gelöst habe ich das so: self.Gauge_Main.Progress := AWorkCount * 100 div IdHTTP_Main.Response.ContentStream.Size; damit richtest dich Quasi an der FileSize aus. :zwinker: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz