Startseite : Mobility : OPL Kurs |
OPL Kurs, Teil 2 | Aktualisierung 2007-03-01 | |
01: Einführung
02: Menüs und mehr 03: Basics, Zufall & Mathetrainer 04: Spielend lernen - Würfel, Bandit & Lotto 05: Datenbanken - Neu/Ändern/Löschen |
06: Datenbanken - Suchen/Gehen Zu
07: Gezielte Textausgabe 08: Fensterl'n mit dem Psion 09: Zeichnen mit Grips |
Menüs und mehr |
Sie können überall die Meinungen von Zeitgenossen darüber nachlesen, was man wie zu machen hat. Und Sie können beim Programmieren davon beliebig nach eigenem Geschmack nutzen. Tun Sie jedoch sich und den Nutzern Ihrer Programme etwas Gutes: Stellen Sie einen zuverlässigen und erkennbaren Programmausstieg zur Verfügung. Nichts ist lästiger, als den "Abschaltknopf" nicht finden zu können.
Das Menü braucht nicht viele Punkte zu enthalten. Es reicht, den Programmausstieg zu erleichtern. Sinnvollerweise definiert man dazu den Menüpunkt "Beenden" und ordnet ihm den Hotkey [Strg+E] zu. Der Hotkey ist die Möglichkeit, durch drücken der Tasten, den Menüaufruf, über die Menütaste zu umgehen. |
Standardmenü im Psion-feeling |
Mit Hilfe der DIALOG-Konstruktion lassen sich auch Menüs gestalten. Ein Zusatz in der dtext-Zeile sorgt dafür, daß eine derartige Zeile durch die Pfeiltasten anwählbar wird. Die $600 sorgt für einen Strich unter dieser Zeile.
Je nachdem, welche Zeile während des Programmlaufes selektiert wurde, erhält a% einen bestimmten Wert. Dieser nun dient der Auswahl des entsprechenden Programmzweiges. Ein [Esc] liefert eine Null zurück und das Programm wird beendet. Die "eins" kann nicht vorkommen, sie gehört zur dinit-Zeile. |
Menü |
proc Menü: rem programm nicht komplett, aber lauffähig local a% dinit "Menü Datei" dtext "Datei öffnen...", "Strg+O", $400 dtext "Speichern unter...", "Strg+S", $600 dtext "Beenden", "Strg+E", $400 a%=dialog print a% get if a%=2 rem rufe Unterprogramm "Laden" elseif a%=3 rem rufe Unterprogramm "Speichern" elseif a%=4 rem rufe Unterprogramm "Beenden" endif endp |
Einfaches Temperatur-Umrechnungsprogramm |
Wenn hier der Dialog mit der [Esc]-Taste abgebrochen wird, ist das Ergebnis von Dialog wegen der Definition dieses OPL-Befehles "null", und der Else-Zweig wird durchlaufen - das Programm also beendet.
Das ist in diesem Fall sogar ganz praktisch, da durch die Abfrage der Temperatur das Programm wie bei einem GET-Befehl jedesmal an der Stelle dFLOAT auf eine Eingabe wartet und gar nicht auf eine Menüanfrage reagieren könnte. Nach diesem Beispiel können Sie auch beliebige andere Konverter aufbauen (km/miles, Schilling/Euro...) |
Konverter |
PROC KONVERTER: rem Umrechnung von Temperatureinheiten; rem es gilt C=(F-32)÷1,8 global fz, c2f$(10), f2c$(10), c2f, f2c c2f$=" " : f2c$=" " do dinit "Tempraturkonverter" dfloat fz, "Temp. eingeben: ",-100000,100000 dtext "", "Ergebnisse (nur volle Grad):" dtext "C --> F:", c2f$ dtext "F --> C:", f2c$,$200 dtext "", "Beenden: mit Esc-Taste!",2 if dialog c2f=32+(1.8*fz) : c2f$=fix$(c2f,0,10) f2c=(fz-32)/1.8 : f2c$=fix$(f2c,0,10) else beep 3,333 : stop rem Programmende endif until 0 ENDP |
Bevor wir Sie Ihren Experimenten überlassen, müssen wir noch den letzten Rat für heute loswerden: Kommentieren Sie Ihre Programme reichlich! Eine Binsenweisheit und im Moment lästig, ja, ja. aber denken Sie an das nächste Mal und Ihre Freude darüber, wenn Sie das Rad nicht noch einmal erfinden müssen. |
Und viel Spaß beim Programmieren! |
OPL am Psion von Rudolf Pöchacker (http://members.xoom.com/poechacker/) |
Copyright © 2002-2007 Mobile Times Business Club
Zurück zum Menü Nach Oben |