Logo: Geos Online Print Archiv
G.O.P.A. - Geos Online Print Archiv
25.04.2024 Archiv  #  Recherche  #  Links  #  Kontakt  #  Gästebuch  #  Impressum

Index
Register
Login

Die Anzeige des Archivs erfolgt grafisch. Ändern

Kurs: GeoProgrammer (Teil 6)

Autor: Jürgen Heinisch

Texteingabe innerhalb einer Dialogbox

Im Kursteil 5 habe ich bei der weitergehenden Vorstellung der Anwendungsmöglichkeit einer Dialogbox auch die Befehle DBGETSTRING und DBVARSTR erwähnt. Diese wollen wir nun anwenden.
Dazu dient das Programm TEXTEINGABE. Zunächst wird der Bildschirm gelöscht und dann eine Dialogbox aufgebaut. Vor dem Sprung in die Dialogboxroutine wird nach dem einstellen des Zeigers auf die Dialogboxtabelle noch ein Zeiger auf die Stelle eingerichtet, in der der Text später abgelegt werden soll. Dazu dient uns Register 5 (r5). Der Textbereich ist, wie man weiter unten im Listing sehen kann, durch Nullen freigehalten.
Unter der Frage nach dem Namen erscheint der Eingabecurser. Nun kann man den Namen eingeben. Maximal jedoch 10 Buchstaben, so ist es in unserem Beispiel vordefiniert. Fehlerhafte Eingaben können gelöscht werden. Die Eingabe wird mit der RETURN-Taste beendet.
Jetzt wird mit einer neuen Dialogbox überprüft, ob der Name auch richtig gemerkt wurde. Die Ausgabe des Namen geschieht nun nicht über DBTXTSTR sondern mit DBVARSTR. Auch hier wird wie bei der Texteingabe indirekt gearbeitet. Das heißt, vor dem Aufruf der Dialogbox muß noch ein Zeiger in Register 5 auf den Text gerichtet werden. Man kann natürlich nicht nur Register 5 verwenden, sondern die Register 5-10.

Alles weitere ist ähnlich der Texteingabe bzw. wie es in den bisherigen Dialogboxen üblich war. Man kann es den ausführlich dokumentierten Listing entnehmen. Interessant ist die Platzierung des OK-Feldes. Es ist durch einen zu großen X-Wert außerhalb der Dialogbox.
Damit sollten die Dialogboxen gründlich genug behandelt sein. Im folgenden Kursteil wenden wir uns der Menütechnik zu.

- Demo Name in Box eingeben aus dem 64er Sonderheft 28 "Alles über GEOS".
- übersetzt von Hypra-Ass in GeoAssembler

   .if        Pass1     ;dem Assembler
   .include   geosSym   ;mitteilen welche
   .include   geosMac   ;Dateien eingebunden
   .endif               ;werden müssen.

   .psect               ; Programmanfangsadresse

 ProgStart:
   LoadW      r0,ClearScreen;Zeiger auf
                            ;Bildschirmlöschroutine
   jsr        GraphicsString;Bildschirm
                            ;löschen ausführen

   LoadW      r0,Dtab       ;Zeiger auf
                            ;Dialogboxtabelle
   LoadW      r5,Eing       ;Zeiger auf
                            ;Eingabestelle
   jsr        DoDlgBox      ;Dialogbox
   LoadW      r0,Dtab2      ;Zeiger auf
                            ;Tabelle Ausgabe
   LoadW      r5,Eing       ;Zeiger auf
                            ;Ausgabestelle
   jsr        DoDlgBox      ;Dialogbox
   jmp        EnterDesktop  ;Programm beenden.

   Dtab:                    ;Eingabe-Dialogbox
   .byte      SETDBPOS ö 1  ;Freie Box mit Schattenmuster 1
   .byte      20,100        ;Obere und untere Grenze
   .word      20,300        ;Linke und rechte Ecke
   .byte      DBTXTSTR      ;Textausgabe vorbereiten
   .byte      10            ;X-Position
   .byte      50            ;Y-Position
   .word      Ausg1         ; Zeiger auf auszugebenen Text

   .byte      DBGETSTRING   ;Indirekte Texteingabe vorbereiten
   .byte      10            ;an X- und
   .byte      62            ;Y Position
   .byte      r5            ;Text an der in r5 stehenden
                            ;Adresse speichern
   .byte      10            ;Maximal 10 Zeichen aufnehmen
   .byte      NULL          ;Ende der Tabelle

   Dtab2:                   ;Ausgabe-Dialogbox
   .byte      SETDBPOS ö 3  ;Freie Box mit Schattenmuster 3
   .byte      50,150        ;Obere und untere Grenze
   .word      100,200       ;Linke und rechte Ecke
   .byte      DBTXTSTR      ;Textausgabe vorbereiten
   .byte      10            ;X-Position
   .byte      20            ;Y-Position
   .word      Antwort       ;Zeiger auf auszugebenen Text
   .byte      DBVARSTR      ;Indirekte Textausgabe vorbereiten
   .byte      10            ;X-Position
   .byte      35            ;Y-Position
   .byte      r5            ;In r5 steht die Adresse des
                            ;auszugebenen Textes
   .byte      OK            ;OK-Feld anzeigen an
   .byte      20            ;X-Position in Byte
   .byte      50            ;Y-Position in Bit
   .byte      NULL          ;Ende der Dialogboxtabelle

   Ausg1:                   ;auszugebener Text für Dialogbox
   .byte      "Wie heißen Sie ?"
   .byte      NULL          ;Ende des Textes

   Eing:                    ;Engabetext freihalten
   .byte      0,0,0,0,0,0,0,0,0,0
   .byte      NULL          ;Ende des Eingabetextes

   Antwort:                 ;Ausgabetext für Dialogbox
   .byte      "Ihr Name ist  :"
   .byte      NULL          ;Ende des Ausgabetextes

   ClearScreen:
             >>Tabelle s. GUP 5 oder GeoProgramner<<
   ProgEnd:                 ;Programmendekennzeichen

Wenn ihr schöne Demo's entwickelt habt, schickt sie mir bitte ein.

 

Jürgen Heinisch

 

 

 




Dieser Artikel ist Bestandteil von:

Ausgabe 07

! - - - - - M I C R O F I L M - - - - - ! | Editorial | Clubinfo's | Schon gewußt ? | Clubtreffen #2 | Die Usermeinung: Sonderheft #2 | GeoBox Aachen im Mailboxnetz! | GeoBox Hamburg | Kurs: GeoProgrammer (Teil 6) | Test: Mega Pack 2 | GeoThek


GeoProgrammer

Kurs: GeoProgrammer (Teil 1) | Kurs: GeoProgrammer (Teil 2) | Kurs: GeoProgrammer (Teil 3) | Kurs: GeoProgrammer (Teil 4) | Kurs: GeoProgrammer (Teil 5) | Kurs: GeoProgrammer (Teil 6) | Kurs: GeoProgrammer (Teil 7) | Kurs: GeoProgrammer (Teil 8) | Kurs: GeoProgrammer (Teil 9)


Kurzlink hierhin: http://geos-printarchiv.de/892


Letzte Änderung am 01.11.2019