(Darstellen eines Fortschrittes oder zur Verwendung von Füllstandsanzeigen)
- eine neue Klasse (z.B. Option1) erstellen, die von der Applikation aufgerufen wird und die GUI mit der Fortschrittsanzeige aufruft
1. Attribute der Klasse:
ok : UglButton abbruch : UglButton push : bool = false progress : UglProgressBar
2. Methodeninhalt:
- onInit()-Methode, die bei Aufruf ausgeführt wird
dim_t width = 130; Rect r( 10, 45, width, 0 ); ok.createControl(this, r, "Ok"); ok.clickEvent = 'o'; r.top += 50; abbruch.createControl(this, r, "Abbruch"); abbruch.clickEvent = 'a'; r.top += 100; progress.createControl(this, r, "%d%%" );
- Anwender betätigt Button “ok” und übergibt dem Eventhandler das Ereignis “o”.
- In der Methode „onEvent“ wird das übergebene Event abgefragt
if( nr == 'o' ) { push = true; } if( nr == 'a' ) { push = false; }
- Die erzeugte UglProgressBar wird durch die Methode „onTimer1s“ gefüllt.
static uint8_t val=0; progress.setValue( val%100 ); if (push) { val+=10; } else { val = 0; }
- Durch Setzen der Variable “push” auf “true” wird die Variable “val” pro Sekunde um 10 erhöht, wodurch der Füllwert der ProgressBar erhöht wird bis die Bearbeitung abgeschlossen ist.
Oder:
- Der Prozessfortschritt kann während der Bearbeitung durch Betätigen des Buttons „abbruch“ gestoppt werden.
- Anwender betätigt Button “abbruch” und übergibt dem Eventhandler das Ereignis “a”.
- Der bool-Wert “push” wird dadurch auf “false” und die Variable „val“ wird wieder auf „0“ gesetzt, wodurch die ProgressBar wieder geleert wird.
- die notwendige uglProgressBar aus der Bibliothek