![]() |
TProgressBar.Max > 4 GB?
Hallo,
ich möchte in einem ProgressBar die verfügbare Anzahl an Bytes einer CD/DVD anzeigen. CD -> ~700MB OK DVD -> 4.7 GB -> > Int32 Gibt es da einen Trick, dem ProgressBar mehr als Int32 zuzuweisen? Dass ich das per Code ändern kann, ist klar, will ich aber nicht unbedingt ;) |
AW: TProgressBar.Max > 4 GB?
1 Step = 1KB,
schon hast du Platz für 4TB |
AW: TProgressBar.Max > 4 GB?
Hallo,
das ist klar, wobei Step ja hier falsch ist, weil ich nicht den Fortschritt, sondern das Max > 4 GB brauche. |
AW: TProgressBar.Max > 4 GB?
Jo, aber wenn du nicht jedes einzelne Byte anzeigst, sondern die größe auf KB-Basis, dann hast du kein Problem mehr
|
AW: TProgressBar.Max > 4 GB?
Delphi-Quellcode:
var
Dr : Integer; begin Dr:= 3; ProgressBar1.Max:= DiskSize(Dr)div 1000; ProgressBar1.Position:= (DiskSize(Dr)-DiskFree(Dr))div 1000; ... // Alternative: ist schöner und praktischer Gauge1.Progress:= (System.SysUtils.DiskFree(Dr)*100) div DiskSize(Dr); Application.ProcessMessages; Label1.Caption:= INTTOSTR(Gauge1.Progress)+' % free';// auf Gauge1 |
AW: TProgressBar.Max > 4 GB?
Rechne es doch intern auf Prozent - oder wenn Du es genauer willst - auf Promille herunter.
Dann bekommt der ProgressBar lediglich einen Wert zwischen 0 und 100 (bzw. 1000). //edit: Am Ende muss doch der ProgressBar eh auf einen Pixel runden. Das kannst Du auch vorher machen und Dir die großen Zahlen sparen. |
AW: TProgressBar.Max > 4 GB?
Sagen wir mal so:
Angenommen, die ProgressBar sei 4096 Pixel Breit, wieviele unterschiedliche Werte kann man dann anzeigen lassen? Genau 4096. Die 4 TB müssen also zwangsläufig auf diese 4096 Werte runtergebrochen werden, entweder von Dir oder von der Progressbar. Letztlich muss bei der Anzeige von 4 TB für eine kontinuierliche Darstellung eine Berechnung durchgeführt werden, die die Zwischenwerte zwischen dem Minimalwert und dem Maximalwert gleichmäßig auf die Breite der Progressbar verteilt. Ein Problem mit Int32 bekommst Du erst, wenn die Breite der Progressbar größer Int32 ist. |
AW: TProgressBar.Max > 4 GB?
Zitat:
Das ist wesentlich angenehmer als sich einen rauchenden Kopf über Bytes und irgendein Maximum zu machen. Eine Einteilung von 0 bis 100 oder wie Daniel sagte 1000, reicht vollkommen und ist genau genug. Als Hint oder woanders in der GUI kann man ja trotzdem die Bytes ausgeben statt die Prozent. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 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