Einzelnen Beitrag anzeigen

Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#1

ProgressBar beim Kopieren von Dateien - Falsche Prozente

  Alt 6. Jul 2007, 19:12
Hallo,

ich verwende in einem Programm beim Kopieren von Daten zwei ProgressBars. Die erste für die aktuelle Datei und die zweite für den gesamten Fortschritt. Das Kopieren stellt kein Problem dar, jedoch die Anzeige der zweiten ProgressBar. Für den Fortschritt der ersten ProgressBar verwende ich die Dateigröße, demnach weise ich PBr1.Max die Dateigröße zu. Da ich nun nicht nur eine Datei sondern größere Mengen kopieren will, kann ich die Gesamtgröße aller Dateien nicht für PBr2.Max verwenden da es den Integerbereich verlässt. Aus diesem Grund dachte ich, dass ich für die zweite die Prozente ausgebe. Demnach hat PBr2.Max immer 100. Leider schaffe ich es nicht, die Prozente so zu errechnen, dass die ProgressBar am Ende passt.
Delphi-Quellcode:
// PBrCopy = einzelne Datei
// PBrCopyAll = Gesamtfortschritt
// FullSize = Gesamtgröße aller Dateien
// nachdem Kopiervorgang für einzelne Datei beendet

// Codevariante 1 - Gesamtfortschritt zu früh am Ende
PBrCopy.Max := Trunc(0.5 + 100.0 * PBrCopy.Max / FullSize);
PBrCopyAll.Position := PBrCopyAll.Position + PBrCopy.Max;

// Codevariante 2 - Gesamtfortschritt zu früh am Ende, jedoch weniger früher
PBrCopy.Max := Round(PBrCopy.Max * 100 / FullSize);
PBrCopyAll.Position := PBrCopyAll.Position + PBrCopy.Max;
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat