Martin K. schrieb im Beitrag #2812209:
> Mit der oben aufgezeigten Menüsteuerung hänge ich dann ja immer in dem
> UP Do_Menu fest, oder sehe ich das falsch. Und wenn ich in ein Untermenü
> wechsle, dann hänge ich in der Do_Menu - Routine des UP's fest, oder?
Ich weiß zwar jetzt nicht worauf du dich beziehst, aber ja, das ist eine
mögliche Idee.
Jedes Menü ist ein UP und das 'Menü wird verlassen' in dem das UP einen
Return ausführt. Geht es innerhalb eines Menüs in ein Submenü, dann ist
das ein Funktionsaufruf der Funktion, die eben genau dieses Menü
behandelt.
> Denn mir ist es wichtig, das die Menü - Programme universell sind. Das
> heißt für mich auch automatisch mit, das ich das Menü - Programm (was ja
> an sich nichts zeitkritisches ist) einfach in main() mit aufrufen kann.
> Also ich möchte mit der Menüsteuerung nicht den µc tot legen, sondern ab
> und zu noch was andres in main() machen können.
Dann musst du das anders aufziehen. Da funktioniert dann diese Technik
nicht mehr.
Eine mögliche Technik ist es dann, die Menüs nicht dadurch zu
schachteln, in dem jedes Menü durch eine Funktion repräsentiert wird,
sondern eine Datenstruktur hochzuziehen, in der die Menüs und ihre
Verkettung durch zb Indizes oder Pointer realisiert sind. Dies deshalb,
damit zu jedem Zeitpunkt eindeutig klar ist, wie eine Operation 'nach
Oben', 'nach Links' etc. zu realisieren ist bzw. was dabei zu tun ist.
Die Information in der Datenstruktur verrät es dir. Eventuell sind dabei
dann allerdings ein paar Hilfsvariablen notwendig (die man aber auch in
die Datenstruktur packen kann) und in denen man sich zb merkt, welcher
Menüpunkt aus einem Menü 'den Cursor hat', wenn die Kontrolle aus einem
Submenü zurückgegeben wird.