====== Klasse erweitern ====== >>>{{:inneuemfenster.png?direct&300|}} Öffnen Sie das Paket //MeineBildschirme//. Ergänzen sie die Klasse //StartForm// wie folgt: * Attribute: //btnPlus// und //btnMinus// vom Typ //[[http://www.myugl.de/_referenz/v005/UglButton.htm|UglButton]]// * Attribut: //progress// vom Typ //[[http://www.myugl.de/_referenz/v005/UglProgressBar.htm|UglProgressBar]]// * Attribut: //value// vom Typ //int// mit dem Startwert 0 >>{{:attributzuform.png?direct&300|}}{{::pfeilrechts.png?direct&100|}}{{::classformprogress.png?direct&200|}} ====== Quelltext vervollständigen ====== Falls in den Operationen //onInit// und //onEvent// noch alte Quelltexte enthalten sind, löschen Sie diese. Ergänzen Sie die Operationen wie folgt: >>>**onInit** >>><code cpp> // ein Rechteck für die Position und Größe der Steuerelemente Rect r(20,10,20,20); // Ein '-' als Klickereignis-ID für den Minus-Button btnMinus.clickEvent='-'; // die Schaltfläche erzeugen btnMinus.createControl(this,r,"-"); // die Position des nächsten Controls festlegen r.left += 20; r.width = 150; // den Fortschrittsbalken erzeugen progress.createControl(this,r,"%d"); // den Anfangswert setzen progress.setValue(value); // die Position des nächsten Controls festlegen r.left += 150; r.width = 20; // Ein '+' als Klickereignis-ID für den Plus-Button btnPlus.clickEvent='+'; // die Schaltfläche erzeugen btnPlus.createControl(this,r,"+"); </code> Beachten Sie, dass die Operationen über das //ClickEvent// korrespondieren. Das //ClickEvent// ist eigentlich eine Zahl oder besser ein ID (identification) kann aber der Verständlichkeit halber auch mit einem ASCII-Code belegt sein. >>>**onEvent** >>><code cpp> // wenn die Schaltfläche '-' betätigt wurde if (nr=='-') { value--; if (value<0) value=0; progress.setValue(value); } // wenn die Schaltfläche '+' betätigt wurde else if ( nr=='+') { value++; if (value>100) value=100; progress.setValue(value); } </code> Die beiden Button benachrichtigen den Bildschirm (Synonym auch Screen oder Form) darüber, das ein Ereignis eingetreten ist und identifizieren sich mit ihrem ClickEvent-ID. Das wird in der Operation //onEvent// für eine spezifische Reaktion benutzt. ====== Testen ====== Erstellen und übertragen sie das Programm auf den Mikrocontroller. Wenn Sie das Paket //MeineBildschirme// als neues Fenster geöffnet haben, können Sie jetzt zwischen den Fenstern umschalten, um die Anwendung zu erstellen. Oder sie betätigen auf dem Titel-Tabulator der Anwendung die rechte Maustaste und erhalten dort das Aktionsmenü des entsprechenden Diagramms. So können Sie die Anwendung auch ohne Umschalten der Fenster erstellen. >>>{{::taberstellenbrennen.png?direct&400|}} Testen Sie die Funktion der Schaltflächen und vergleichen Sie das Ergebnis mit dem Quelltext. >>>{{::progress.jpg?direct&300|}} ====== weiter mit ====== * [[http://myugl.de/_wiki/doku.php?id=einfache_steuerelemente_mit_der_ugl&#realisierung_der_anwendung_einfacher_steuerelemente|Übersicht der Entwicklungsschritte]] * [[realisierung_einfache_steuerelemente_itteration_2|nächster Entwicklungsschritt]]