Johannes M. schrieb:
> Da ich jedoch nicht wirklich begabt bin, was die Gestaltung von
> Interfaces betrifft, bin ich auf der Suche nach einer UI-Library die
> möglichst folgendes bietet:
>
> - Externe Schalter an GPIO für Menüführung
> - Encoder-Support
> - Standard-UI-Elemente wie Labels, Progress-Bars, Listen, Drop-Down
> Boxen
> - Elemente wie z.B. Slider oder Drehknöpfe
Du wirst dafür nirgendwo etwas finden, denn du wirfst verschiedene Dinge
in einen Topf.
Also:
1. für den Support irgendwelcher Schalter, Encoder, Touches usw.
brauchst du Peripherie-Treiber, die passend zum Ereignis eine Botschaft
kreieren und diese in die Ereignis-Verwaltung eingeben.
So etwa "AddEvent(aEvent: TEvent);"
2. für die Bearbeitung aller möglichen Ereignisse (genauer: Botschaften)
brauchst du eine Botschaftsverarbeitung, die die hereingetrudelten
Events verarbeitet (wie auch immer)
3. für die Darstellung von irgend welchen grafischen Dingen brauchst du
ein GDI, also eine grafische Schnittstelle, die dir Dienste wie Text
darstellen, Linien zeichnen, Grafiken anzeigen, Flächen füllen usw.
bietet.
4. für dein eigentliches Vorhaben, eine grafische Oberfläche für deine
Programme zu haben, brauchst du ne grafische Klassenbibliothek, die
sowas wie Paneele, Border, statischen Text, Eingabezeilen, Buttons usw.
bietet und selbige mit der Botschaftenverarbeitung verknüpft, so daß
deine grafische Oberfläche auf Ereignisse reagieren kann.
5. für deine eigentliche Nutzlast brauchst du Routinen, die mit der
grafischen Oberfläche derart verknüpft sind, daß all die Reaktionen auf
Ereignisse, die NICHT innerhalb der Klassenbibliothek erledigt werden,
in diesen Nutz-Routinen behandelt werden.
Nun hast du nen Eindruck gewonnen, was man so braucht - und daß man all
diese Teile durchaus völlig separat voneinander schreiben kann. Das
alles ist im Grunde recht einfach, wenn man das Gesamtproblem in
sinnvolle Teile zerlegt. Im ganz Kleinen habe ich sowas in der Lernbetty
schon mal vorgeturnt.
W.S.