|
|
|
09.12.2024 | Archiv # Recherche # Links # Kontakt # Gästebuch # Impressum | |
Index Login Die Anzeige des Archivs erfolgt grafisch. Ändern |
GeoCom Workshop #5Menü- und Tastaturroutinen Unser Programm sollte bisher aus den Abschnitten @hauptprogramm (zum Schluß zwei WAITs und ein END - das wird sich diesmal ändern), @zahlenreihe_erzeugen, @grafik_aufbauen und @würfel_darstellen (ab Modul oder im Hauptquelltext; wer damit Schwierigkeiten hatte, kann bei mir die Lösung bekommen) sowie dem Definitionsteil ganz am Anfang bestehen. In dieser Ausgabe wollen wir eine Menüstruktur entwickeln und dazu erstmals ObjectEdit einsetzen (erzeugt bitte eine Datei "Workshop5_obj"). Dazu brauchen wir:
Experimentiert ruhig ein bißchen mit den Einstellungen, den Ausrichtungen und Positionen. Benutzt aber bitte für das weitere Vorgehen die obigen Angaben. Der Abstand zwischen zwei untereinanderliegenden Menüpunkten muß genau 14 Pixel betragen, sonst sieht es nachher auf dem Bildschirm weniger schön aus. 1. Beim Label Hauptprogramm: @hauptprogramm MENU h_menü, 0 MAINLOOP 2. Im Definitionsteil ist das erzeugte Objectfile einzubinden: OBJFILE "Workshop5_obj" OBJECT m_opt, m_geos, h_menü Wichtig: Das Einbinden muß vom untersten Menü bis in die höchste Ebene erfolgen, nie umgekehrt. LABEL r_info, r_sim, r_load, r_save, r_print, r_end Zunächst reicht für jede Sprungmarke ein @labelname FIRSTMENU RETURN zum Abbau des offenen Menüs und Rücksprung in die Mainloop aus. Achtung! Das Label @r_end muß unbedingt lauten: @r_end FIRSTMENU END Sonst kann das Programm nur noch über einen Resettaster verlassen werden, den man als Programmierer zwar haben sollte, aber der dennoch nicht der beste Weg ist. Wenn Ihr nun nach dem Compilieren mit Eurem Menü zufrieden seit, können wir weitermachen und die Routinen mit Leben füllen: @r_info FIRSTMENU STRNBOX Programminformation","","" RETURN @r_sim FIRSTMENU (würfelzahl<0>)=0 (würfelzahl<1>)=0 (würfelzahl<2>)=0 (würfelzahl<3>)=0 (würfelzahl<4>)=0 (würfelzahl<5>)=0 gesamtwert=0 schongewürfelt=0 PATTERN 2 REGT 0,15,319,199 zahlenreihe_erzeugen grafik_aufbauen RETURN Die anderen Routinen werden später noch ergänzt. Um etwas Übersicht zu bewahren, sollte das Programm so aufgebaut sein: Definitionsteil @hauptprogramm Alle "@r_..."-Routinen von links oben nach rechts unten in der Menüanodnung @zahlenreihe_erzeugen @grafik_aufbauen @würfel_darstellen Nun fehlt nur noch die Tastaturabfrage für Short-Cuts: Zunächst wird das Objektdokument geöffnet, dann das Objekt "m_opt" aufgesucht und hinter jede Menübezeichnung durch ein Komma getrennt der Buchstabe angezeigt, der als Tastenkombination mit C= zulässig sein soll. Dann ist noch der Abstand vom linken Bildschirmrand für die Ausgabe des Tastenkürzels einzustellen und wir sind bis auf eine kleine Programmroutine fertig. neue Simulation - n laden - l speichern - s drucken (print) - p ende (quit) - q Fügt im Quelltext vor dem Menü-Befehl ON 0 GOTO keyrout ein und definiert @keyrout als Label. Hierhin wird bei einem Tastendruck verzweigt: @keyrout IF (keydata==238) : r_sim : ENDIF IF (keydata==236) : r_load : ENDIF IF (keydata==243) : r_save : ENDIF IF (keydata==240) : r_print : ENDIF IF (keydata==241) : r_end : ENDIF RETURN Der Vergleichswert nach in der IF-Anweisung ist der jeweilige Tastencode plus 128 für die Commodore-Taste. Der Routinenname danach ist ein GOSUB-Aufruf der jeweiligen Funktion. SETPOS 65,170 : PRINT "/BDurchschnitt : ";: PRINT (STR durchschnitt);: PRINT "/P" Das war alles für diese Ausgabe. Beim nächsten Mal werden wir eine Hilfsmittelverwaltung integrieren und eine Druckroutine schreiben.
Olaf Dzwiza
Kurzlink hierhin: http://geos-printarchiv.de/1996 |
|
Letzte Änderung am 01.11.2019 |