| Autor |
Beitrag |
teamrocket0
      
Beiträge: 177
Erhaltene Danke: 1
Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
|
Verfasst: 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
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: 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
      
Beiträge: 196
Windows Vista
Delphi 7 Prof.
|
Verfasst: 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.
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 
      
Beiträge: 177
Erhaltene Danke: 1
Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
|
Verfasst: 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
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
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: 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
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Mi 28.11.07 14:40
teamrocket0 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 
      
Beiträge: 177
Erhaltene Danke: 1
Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
|
Verfasst: Mi 28.11.07 14:47
In Prozentrechnug war ich immer schlecht! 
_________________ To be forgotten is worse than death!
|
|
Kroko
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Mi 28.11.07 14:52
teamrocket0 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 
      
Beiträge: 177
Erhaltene Danke: 1
Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
|
Verfasst: Mi 28.11.07 15:09
Hmmmm... OK!^^
Dann muss ich das mal editieren XD
_________________ To be forgotten is worse than death!
|
|
teamrocket0 
      
Beiträge: 177
Erhaltene Danke: 1
Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
|
Verfasst: 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
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.
Delphi-Quelltext 1:
| Gauge1.Progress:=Gauge1.Progress + round(100 / ListBox1.Items.Count)*Zahler; |
_________________ To be forgotten is worse than death!
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Mi 28.11.07 16:47
Wie bereits erwähnt wurde...
Delphi-Quelltext 1: 2: 3: 4:
| Gauge.MaxValue := ListBox1.Items.Count; Gauge.MinValue := 1; Gauge.Value := Gauge.Value + 1; |
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 
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
jakobwenzel
      
Beiträge: 1889
Erhaltene Danke: 1
XP home, ubuntu
BDS 2006 Prof
|
Verfasst: 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
      
Beiträge: 18
WIN XP
|
Verfasst: Mi 28.11.07 19:03
Nein.
Items.Count liefert die Anzahl der Items und fängt bei 1 an zu zählen.
|
|
jakobwenzel
      
Beiträge: 1889
Erhaltene Danke: 1
XP home, ubuntu
BDS 2006 Prof
|
Verfasst: 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
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: Mi 28.11.07 20:09
FlaShGordon 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 
      
Beiträge: 177
Erhaltene Danke: 1
Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
|
Verfasst: 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
      
Beiträge: 18
WIN XP
|
Verfasst: Mo 10.12.07 16:40
Regan hat folgendes geschrieben: | FlaShGordon 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.
|
|