Autor Beitrag
teamrocket0
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 177
Erhaltene Danke: 1

Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
BeitragVerfasst: Mi 28.11.07 14:15 
Ich habe ein Prog das nach und nach einige Dateien verarbeitet...
Ich wollte diesen Fortschritt gerne in einem Gauge darstellen.
Die Anzahl der Dateien ist leider variabel, somit weiß ich nicht genau wie ich das jetzt anstellen soll das mir das Gauge immer den richtigen Fortschritt anzeigt.

Ich habe eine Listbox in der alle Dateien angezeigt werde, das heißt ich weiß wie viele Dateien maximal zur Verfügung stehen. Und ich habe einen Zähler der mir sagen kann bei welcher Datei er gerade arbeitet.

_________________
To be forgotten is worse than death!
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mi 28.11.07 14:25 
ich versteh dein problem nicht ganz.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Dragonclaw
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 196

Windows Vista
Delphi 7 Prof.
BeitragVerfasst: Mi 28.11.07 14:29 
Also wenn du die Anzahl der Dateien hast, kannst du ja berechnen wieviel eine Datei zum Ganzen beiträgt.

Im Fall von Gauge also 180 / Anzahl der Dateien.

z. B. hast du 455 Dateien, pro verarbeitete Datei kommen also 0,08999% Prozent hinzu.

So jetzt ist allerdings das Problem das man nur Integer hinzufügen kann, also kommt noch ne Variable dazu die solange hochgezählt wird bis Sie über 1 ist, dann wird 1 davon abgezogen und der Gauge um einen erhöht. Dann geht das ganze von vorne los.

ausblenden Quelltext
1:
2:
3:
4:
5:
wenn noch Dateien vorhanden sind
  mach was
  Prozent_count wird um 180/Anzahl der Dateien erhöht
  wenn Prozent_count > 1 dann
  Gauge wird um 1 erhöt und von Prozent_count wird einer abgezogen.
teamrocket0 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 177
Erhaltene Danke: 1

Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
BeitragVerfasst: Mi 28.11.07 14:38 
Also...das Gauge sieht aus wie ein Ladebalken.

Wenn ich jetzt 100 Dateien max zur Verfügung habe und das Prog hat erst 10 Dateien verarbeitet, dan muss das Gauge bei 10% stehen.

Habe ich 300 Dateien muss das Gauge bei 37 Dateien müsste es mir rund 15% anzeigen

Edit:
Da war jemand schneller mit einem Beispiel XD

Ich habe jetzt erstmal das hier

ausblenden Delphi-Quelltext
1:
Gauge1.Progress:=Gauge1.Progress+round(ListBox1.Items.Count / Zahler);					


Edit Nr.2:
Habe ich 300 Dateien muss das Gauge bei 37 Dateien müsste es mir GENAU 12,33% anzeigen

_________________
To be forgotten is worse than death!


Zuletzt bearbeitet von teamrocket0 am Mi 28.11.07 15:10, insgesamt 2-mal bearbeitet
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mi 28.11.07 14:39 
also wenn ich TGauge nehme zeigt er mir die Eigenschaften
MinValue
MaxValue und
Progress im OI an, warum sollte man diese dann nicht auch zur Laufzeit nehmen können

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mi 28.11.07 14:40 
user profile iconteamrocket0 hat folgendes geschrieben:
Also...das Gauge sieht aus wie ein Ladebalken.

Wenn ich jetzt 100 Dateien max zur Verfügung habe und das Prog hat erst 10 Dateien verarbeitet, dan muss das Gauge bei 10% stehen.

Habe ich 300 Dateien muss das Gauge bei 37 Dateien müsste es mir rund 15% anzeigen

Mathematik Klasse 8 -> einfache Prozentrechnung

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
teamrocket0 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 177
Erhaltene Danke: 1

Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
BeitragVerfasst: Mi 28.11.07 14:47 
In Prozentrechnug war ich immer schlecht! :(

_________________
To be forgotten is worse than death!
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mi 28.11.07 14:52 
user profile iconteamrocket0 hat folgendes geschrieben:
In Prozentrechnug war ich immer schlecht! :(

schaust du hier

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
teamrocket0 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 177
Erhaltene Danke: 1

Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
BeitragVerfasst: Mi 28.11.07 15:09 
Hmmmm... OK!^^
Dann muss ich das mal editieren XD

_________________
To be forgotten is worse than death!
teamrocket0 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 177
Erhaltene Danke: 1

Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
BeitragVerfasst: Mi 28.11.07 16:05 
Ahhh, Leute...cih hab's jetzt hinbekommen..

Die Anzahl der Dateien ergibt sich aus der Länge der Listbox(Items.count)...
The Gauge reicht von 0-100%
Damit es keine Probleme mit dem Komma gibt wird das ganze gerundet XD
ausblenden Delphi-Quelltext
1:
Gauge1.Progress:=Gauge1.Progress + round(100 / ListBox1.Items.Count);					


Das läuft recht gut...nur wenn ich das Program fortsetze spinnt das Ding.
Die Lösung, beim öfnen des Programms, damit die Anzeige wieder stimmt wenn das Prog mit der Arbeit weiter macht XD.
Der Zähler (Zahler) wird deim starten geladen damit das Prog an der Stelle weiter machen kann.

ausblenden Delphi-Quelltext
1:
Gauge1.Progress:=Gauge1.Progress + round(100 / ListBox1.Items.Count)*Zahler;					

_________________
To be forgotten is worse than death!
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mi 28.11.07 16:47 
Wie bereits erwähnt wurde...
ausblenden Delphi-Quelltext
1:
2:
3:
4:
Gauge.MaxValue := ListBox1.Items.Count;
Gauge.MinValue := 1;
//in der verarbeitenden Schleife pro Datei (=Listbox-Zeile) einmal aufrufen:
Gauge.Value := Gauge.Value + 1; //Gibt glaub auch sowas wie StepIt;

Ich weiß nicht genau, ob die Eigenschaft Value heißt, aber es gibt eine Eigenschaft, die die Prozente angibt und eine die den Wert abhängig von Min/Max-Value angibt. Dann nimmt dir die Gauge sämtliches Prozentrechnen ab, einfacher gehts nicht mehr :roll:

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Mi 28.11.07 17:12 
Wäre 0 als Minimum nicht sinnvoller?

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
FlaShGordon
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18

WIN XP

BeitragVerfasst: Mi 28.11.07 19:03 
Nein.
Items.Count liefert die Anzahl der Items und fängt bei 1 an zu zählen.
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Mi 28.11.07 19:37 
Und wenn noch nix gemacht wurde, also kein Fortschritt vorhanden ist?
Dann ist der Wert doch nicht 1, sondern logischerweise 0.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Mi 28.11.07 20:09 
user profile iconFlaShGordon hat folgendes geschrieben:
Nein.
Items.Count liefert die Anzahl der Items und fängt bei 1 an zu zählen.

Deshalb sollte man ja immer Items.Count-1 verwenden, da die Items bei Item[0] beginnen.
teamrocket0 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 177
Erhaltene Danke: 1

Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
BeitragVerfasst: Fr 30.11.07 12:32 
Nein, das geht so schon.
Die Liste wird ja schon beim starten des Programms geladen, somit ist ja schon ausgeschloßen das keine "0" auftritt, sollten sich keine Dateien in dem betrefendem Ordner befinden fängt das Prog ja garnicht erst an.^^

Aber Danke das ich euch darüber Gedanken gemacht habt!

_________________
To be forgotten is worse than death!
FlaShGordon
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18

WIN XP

BeitragVerfasst: Mo 10.12.07 16:40 
user profile iconRegan hat folgendes geschrieben:
user profile iconFlaShGordon hat folgendes geschrieben:
Nein.
Items.Count liefert die Anzahl der Items und fängt bei 1 an zu zählen.

Deshalb sollte man ja immer Items.Count-1 verwenden, da die Items bei Item[0] beginnen.


Hast Recht, man sollte sich das besser gleich angewöhnen.