====== System zeigt einen Fortschritt an ====== (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: >>>>><code cpp> ok : UglButton abbruch : UglButton push : bool = false progress : UglProgressBar </code> 2. Methodeninhalt: >- onInit()-Methode, die bei Aufruf ausgeführt wird >>>>><code cpp> 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%%" ); </code> >{{:Szefa_Option1.PNG?300|}} >- Anwender betätigt Button “ok” und übergibt dem Eventhandler das Ereignis “o”. >- In der Methode „onEvent“ wird das übergebene Event abgefragt >>>>><code cpp> if( nr == 'o' ) { push = true; } if( nr == 'a' ) { push = false; } </code> >- Der bool-Wert “push” wird dadurch auf “true” gesetzt. >{{:Szefa_Startscreen.PNG?200|}} >- Die erzeugte UglProgressBar wird durch die Methode „onTimer1s“ gefüllt. >>>>><code cpp> static uint8_t val=0; progress.setValue( val%100 ); if (push) { val+=10; } else { val = 0; } </code> >- 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. >{{:Szefa_Fortschrittsscreen.PNG?200|}} 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. >{{:Szefa_uglProgressBar.PNG?300|}} >- die notwendige uglProgressBar aus der Bibliothek ====== Nächstes Thema ====== [[wechselt_den_screen|Wechselt den Screen]]