Klasse erweitern

Öffnen Sie ggf. das Paket MeineBildschirme.

Ergänzen sie das Klassendiagramm wie folgt:

  • neue Klassen OptionsForm und HelpForm anlegen mit:
    • Attribut: name vom Typ UglText
    • Operation: onInit überschreiben der gleichnamigen Operation der Basisklasse
    • die Klassen OptionsForm und HelpForm sind Realisierungen des Templates UglForm
  • Verbinden Sie die Klasse StartForm über eine gerichtete Assoziation mit den neuen Klassen.

Quelltext vervollständigen

Wechseln Sie in das Klassendiagramm der Anwendung. Falls die Klasse Navigator noch nicht über eine Operation onEvent verfügt, ergänzen Sie diese bitte durch Überschreiben der gleichnamigen Operation der Basisklasse.

Der Navigator ist eine spezialisierte UglForm Form vom Typ UglNavigator. Der Navigator wird standardmäßig als Fußzeile angezeigt. Die Button auf dem Navigator können durch die jeweils aktive Form festgelegt werden. Die Instanz dieser Form ist immer als Attribut der GUI oder globales Objekt verfügbar.

Ergänzen Sie die Operationen wie folgt:

Der Navigator reagiert also auf die Ereignisse mit den IDs 'h', '?', 'o' und 'x'. Dabei werden je nach Ereignis die Formen StartForm, HelpForm und OptionsForm geladen. Beim Ereignis 'x' wird an die GUI die Nachricht goBack gesendet. Diese GUI merkt sich, welche Formen zuletzt geladen wurden und kann diese über die Opreation goBack erneut laden.

Wechseln Sie wieder in das Paket MeineBildschirme und ergänzen Sie die Operationen der neuen Klassen wie folgt:

StartForm::onInit
// NEU: die Navigator-Button festlegen, Erstes Zeichen=ClickEvent an Navigator
navButtons = " |oOptions|?Help|xExit";
 
dim_t width = 200;
Rect r( 10, 5, width, 0 );
txtWelcome.createControl(this, r, "Willkommen" );
 
r.top += r.height + Margin;
r.height = 0;	// default -> PA, Höhe passt sich automatisch an
btnTest1.icon = iconBright_20;
btnTest1.createControl(this, r, "Drück mich!" );
btnTest1.clickEvent = 0x55;
NextForm::onInit
// NEU: die Navigator-Button festlegen, Erstes Zeichen=ClickEvent an Navigator
navButtons = "hHome|oOptions|?Help|xExit";
Rect r(20,20,100,20);
name.createControl(this,r,"Beispielseite");
r.top+=30;
btnEnde.clickEvent='e';
btnEnde.createControl(this,r,"Ende Next");
OptionsForm::onInit
// NEU: die Navigator-Button festlegen, Erstes Zeichen=ClickEvent an Navigator
navButtons = "hHome|oOptions| |xExit";
// Name der Seite anzeigen
Rect r(20,20,100,20);
name.createControl(this,r,"Einstellungen");
HelpForm::onInit
navButtons = "hHome| |?Help|xExit";
// Name der Seite anzeigen
Rect r(20,20,100,20);
name.createControl(this,r,"Hilfeseite");

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.

Testen Sie die Funktion der Schaltflächen und vergleichen Sie das Ergebnis mit dem Quelltext.

weiter mit

die_weiteren_bildschirme_realisieren.txt · Zuletzt geändert: 2014/01/24 14:19 von esche