|
|
|
25.04.2024 | Archiv # Recherche # Links # Kontakt # Gästebuch # Impressum | |
Index Login Die Anzeige des Archivs erfolgt grafisch. Ändern |
GeoBasic Workshop - Teil 3: Maus- und DA-RoutinenZum Schluß wird das Stundenplan-Programm um zwei GEOS typische Eigenschaften ergänzt: Nach Anklicken eines Feldes soll eine Dialogbox die Eingabe eines Fachnamen erlauben und Hilfsmittel werden möglich sein. Um die Eingabe zu realisieren, brauchen wir zuerst eine Feldvariable zum Speichern der Texte: Dann ist eine Tabelle mit den Koordinaten, an denen die Texte plaziert werden sollen, nötig: Und Variablen, in denen die Werte gespeichert werden: Zum Einlesen ist folgende Ergänzung des Init-Teils nötig: Durch die Definition von BUTTON ... läßt sich eine Routine deklarieren, die beim Mausklick aufgerufen wird: Die Position des Mauszeigers läßt sich mittels MOUSEIN überprüfen. Das Unterprogramm @Klick wird bei jedem Mausklick -egal ob auf Menü, Icon oder an anderer Stelle- aufgerufen. Wenn der Zeiger sich nicht im Bereich des Rechtecks mit der linken oberen Ecke 22/85 und der rechten unteren Ecke 314/175 befindet, geht es in die Mainloop zurück. <700 bis 720> Jetzt gilt es, die Koordinaten auszuwerten und festzustellen, welcher Spalte und Zeile sie entsprechen. Wenn nicht in einem Feld geklickt wurde (Zeile 850, 920) springt das Programm in die Mainloop zurück. Jetzt brauchen wir nur noch die Eingaberoutine, die Position des Feldes haben wir ja schließlich. Nun kann der Nutzer über eine Dialogbox einen Fachnamen eingeben, den wir aus Platzgründen auf 10 Zeichen beschränken müssen. Die Abfrage in Zeile 990 dient der Möglichkeit eines Abbruchs durch Anklicken des entsprechenden Icons in der Dialogbox. Mittels SETPOS und PRINT braucht der eingegebene Text nur noch ausgegeben werden, dann erfolgt ein Rücksprung in die Mainloop; siehe <980 bis 1030>. Abschließend soll noch ein weiteres typisches Merkmal aller GEOS-Applikationen eingebaut werden: Die Verwendung von DeskAccessoires. Die Verwaltung durch das GEOS-Menü wird von GeoBasic selber übernommen, wir müssen nur den Bildschirm nach Verlassen des DAs neu aufbauen. Dazu muß dem Rechner mitgeteilt werden, wohin der nach dem Verlassen springen soll, dies geschieht durch REDRAW. Die Routine ab dem Label @Hilfsmittel baut zunächst den Rand um das Editorfeld neu auf, dies geschieht analog zum Ende der Druckroutine. Dann wird die Darstellungsfläche gelöscht und der Stundenplan neu gezeichnet: Hier zeigt sich nun, warum es sinnvoll war, einige zunächst überflüssige Unterroutinen zu definieren. Und damit ist das Programm fertig. Natürlich kann noch vieles verbessert werden: eine Fehlerroutine, verschiedene Eingabemodi oder auch ein größerer Plan sind denkbar. Experimentiert einfach ein bißchen, solange Ihr keine Diskettenbefehle verwendet, kann eigentlich nichts passieren. (Eine weitaus umfangreichere Version, die ohne GeoBasic läuft, ist bei mir übrigens als Shareware erhältlich.) An diesem Beispiel ließ sich meiner Meinung nach hervorragend zeigen, daß sich auch mit GeoBasic nützliche Programme schreiben lassen, die sauber und zuverlässig arbeiten, solange man auf Diskettenbefehle verzichtet und sich vorher Überlegungen zur Struktur macht. Bestimmt läßt sich das Vokabelprogramm aus dem Handbuch nicht sinnvoll realisieren, dazu ist schon der MegaAssembler oder die (beim Schreiben dieser Zeilen noch nicht ganz fertige) Compilersprache GeoCom nötig. Wenn Ihr noch Fragen zu GeoBasic habt, könnt Ihr euch an mich wenden. Bitte beschreibt euer Problem so ausführlich wie möglich und legt einen frankierten Rückumschlag bei. Bei Diskettensendungen (nur 1541) ist auf eine ausreichende Rückverpackung zu achten. Olaf Dzwiza Ich bin nicht über BTX erreichbar. Notfalls ist eine Msg. an die Regio Hannover möglich, die Beantwortung dauert dann aber etwas länger.
Olaf Dzwiza
Kurzlink hierhin: http://geos-printarchiv.de/1620 |
|
Letzte Änderung am 01.11.2019 |