AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TProgressBar.Max > 4 GB?

Ein Thema von hoika · begonnen am 15. Mär 2017 · letzter Beitrag vom 15. Mär 2017
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#1

TProgressBar.Max > 4 GB?

  Alt 15. Mär 2017, 08:31
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
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: TProgressBar.Max > 4 GB?

  Alt 15. Mär 2017, 08:32
1 Step = 1KB,
schon hast du Platz für 4TB
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: TProgressBar.Max > 4 GB?

  Alt 15. Mär 2017, 08:51
Hallo,
das ist klar, wobei Step ja hier falsch ist,
weil ich nicht den Fortschritt, sondern das Max > 4 GB brauche.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: TProgressBar.Max > 4 GB?

  Alt 15. Mär 2017, 08:59
Jo, aber wenn du nicht jedes einzelne Byte anzeigst, sondern die größe auf KB-Basis, dann hast du kein Problem mehr
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#5

AW: TProgressBar.Max > 4 GB?

  Alt 15. Mär 2017, 09:04
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

Geändert von t.roller (15. Mär 2017 um 09:24 Uhr)
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: TProgressBar.Max > 4 GB?

  Alt 15. Mär 2017, 09:05
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.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#7

AW: TProgressBar.Max > 4 GB?

  Alt 15. Mär 2017, 09:35
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.
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#8

AW: TProgressBar.Max > 4 GB?

  Alt 15. Mär 2017, 11:01
Zitat:
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).
Ich bin zwar kein Profi, aber so handhabe ich es auch.

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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz