Progressbar

Anfängerfragen zum Programmieren mit PureBasic.
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

Progressbar

Beitrag von Gamer »

Irgendwie ist das sinnig: Man schreibt eine Progressbar ins Fenster aber weiß doch vorher die Anzahl (=Maximum) noch nicht.

Gibt es keine andere Lösung als erst die Bar hinzuschreiben und nach Erlangen der Maximumanzahl die Bar nochmal hinzuschreiben?

ProgressBarGadget(#Bildkonvertierung, 165, 90,125, 20, 0,anzahl,#PB_ProgressBar_Smooth)
Benutzeravatar
Rubiko
Beiträge: 943
Registriert: 25.02.2005 19:43
Computerausstattung: Intel i7 2600k
8GB Ram
GeForce GTX 560 Ti
Wohnort: Schwabach

Beitrag von Rubiko »

ich kann dir zwar nicht helfen, aber wieso machst du einen neuen thread auf? :o
Ich wollte die Welt verändern, doch Gott gab mir nicht den Quelltext.
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Versteh ich nicht.
Eine Progressbar ist doch zur Darstellung von Prozentwerten gedacht, und dies ist ja nur möglich, wenn du den Maximalwert kennst - und das von Anfang an.

Ein Beispiel:
Du brauchst 650 Schritte für irgendeine Aufgabe, beispielsweise hast du 650 Dateien zu kopieren. Also sagst du beim erstellen des Fensters: "Hey, fertig bin ich wenn 650 erreicht wurde, also sind 650 ^= (soll entspricht heißen) 100%"

Immer wenn eine Datei kopiert wurde, machst du SetGadgetState mit dem neuen Wert, was dir dann auf dem Gadget dargestellt wird. Was ist da das Problem


EDIT: Bei einer neuen Frage macht man natürlich einen neuen Thread auf, passt doch sonst nirgends hin!
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

Beitrag von Gamer »

Wenn ich erst mit einem Requester einen Ordner auswähle und dann
die Dateien auslese, weiß ich eben vorher NICHT die Anzahl (=Maximum) der Dateien...
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Gamer hat geschrieben:Wenn ich erst mit einem Requester einen Ordner auswähle
und dann die Dateien auslese, weiß ich eben vorher NICHT die Anzahl
(=Maximum) der Dateien...
... dann ist die Progressbar eben nicht für die Anzeige geeignet. Eine
Progressbar kann man logischerweise nur dann verwenden, wenn man einen
Maximalwert vorher kennt.

Grüße ... Kiffi
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Ich geh mal einfach von ner Dateikopieraufgabe aus.
Da liest du dann halt die Anzahl der Dateien ein, und erstellst danach das Fenster.
Dieser OpenWindow-Procedure kannst du doch ganz normal Parameter übergeben. Eine andere Möglichkeit ist, du nimmst als Maximalwert immer 100 und rechnest deine eigentliche Anzahl um. Das Gadget macht ja auch nix anderes.

x ist die aktuelle tatsächliche Anzahl, MaximalWert ist das, was du normalerweise dem Gadget sagen würdest (jetzt hast du aber das Gadget fest auf 100)

Code: Alles auswählen

statuswert = x*100/MaximalWert
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

So mach ich das in etwa immer.

Ein Prozentsatz:

Code: Alles auswählen

EinProzent.f=MaximalWertDerProgressbar/100
Prozent.l=DeinFortschrittswert.l/EinProzent.f 
SetGadgetState (#Progressbar,Prozent.l)
Antworten