Zitat von
isilive:
Die unterschiedlichen Rechnergeschwindigkeiten sind gar kein so grosses Problem. Wenn meine Progressbar ca. 5 mal pro Sekunde aktualisiert wird, dann ist das schon voll in Ordnung.
Das meine ich ja, aber sowas bekommst du realistisch gesehn nicht hin, wenn man z.B. nur sowas mach
Delphi-Quellcode:
for i := 1 to 2000000000 do
begin
... mach was
if i and $ffff = 0 then
Application.ProcessMessages;
end;
Denn wer sagt dir, daß ein Rechner für diese 65536 Durchgänge nicht 'ne Stunde braucht
und ein anderer Rechner das nicht schon nach ein paar Millisekunden durch hat.
Ergo kannst du schlecht sagen "noar, das sind grob so um die 5 Mal pro Sekunde".
Zitat:
//machwas
verarbeitet immer nur ein Byte?
wenn nicht,
- dann würde ich lieber < statt <> verwenden
- und bei dem =0 könnte es vorkommen, daß einiges übersprungen wird.
PS:
hier du hast 'ne ProgressBar mit 100 Schritten
if (MStream.Position and $ff) = 0 then
und bei einer 1 MB-Datei (sozusagen 6-stellig) wird diese ProgressBar über 4000 Mal aktualisiert,
das sind 40 Mal mehr, als sie überhaupt anzeigen kann.
if (MStream.Position and $2000) = 0 then
das ist für mich nicht überraschend ... immerhin ist das fast so schlimm wie
if (MStream.Position and $1) = 0 then
nur daß bei Letzterem jeden 2. Durchlauf etwas gemacht wird und bei Ersterem 8192 Mal hintereinander und dann 8192 Mal garnicht und so weiter ... also im Durchschnitt bei jedem 2. Durchlauf.
versuch es mal so
if (MStream.Position and $1fff) = 0 then