Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Code-Beispiel

Code-Beispiele » Grafik und Fonts

Text editieren im Graphik-Mode - Ersatz fuer INPUT

Lizenz:Erster Autor:Letzte Bearbeitung:
k. A.MitgliedLothar Schirm 24.10.2007

Im Graphik-Mode ist bei Verwendung der INPUT-Anweisung der Textcursor nicht sichtbar, was z.B. bei Verwendung der Cursorsteuerungstasten links/rechts Probleme machen kann. Die hier vorgestellte SUB EditText für den Graphik-Mode verwendet nur die Backspace-Taste, so dass der Cursor immer am Schluss steht. Er wird durch CHR(219) sichtbar gemacht. Außerdem lässt sich im Gegensatz zur INPUT-Anweisung der Text vorbelegen und kann dann editiert werden.

Nachtrag:
---------
Bei FreebASIC 0.18.2b ist der Textcursor bei INPUT sichtbar (das war bei 0.17b noch nicht der Fall). Trotzdem ist das u.a. Beispiel nützlich für das Editieren eines vorbelegten Textes.


' ------------------- Kleines Beispielprogramm: ----------------------------

DECLARE SUB EditText(BYREF Text AS STRING)
DIM AS STRING s
SCREEN 12
COLOR 15, 1
CLS
LOCATE 10, 10: PRINT "Text editieren : ";
s = "Dies ist ein Test-Text."
EditText(s)
LOCATE 11, 10: PRINT "Editierter Text: "; s
GETKEY


' -------------- Hier kommt die SUB EditText: -------------------------------

SUB EditText(BYREF Text AS STRING)
' Editieren eines Textes im Graphik-Mode mit Vorbelegung (Ersatz fuer die
' INPUT-Anweisung). Unterstuetzt wird nur die Backspace-Taste. Der Textcursor
' wird durch CHR(219) dargestellt.

  DIM AS INTEGER key, row, col
  DIM AS STRING Csr

  'Vorbelegten Text darstellen:
  Csr = CHR(219)
  col = POS
  row = CSRLIN
  LOCATE row, col: PRINT Text + Csr;

  'Tastaturabfrage und -auswertung:
  DO
    key = GETKEY
    SELECT CASE key
    CASE 32 TO 255
      'druckbare Zeichen:
      Text = Text + CHR(key)
      LOCATE row, col: PRINT Text + Csr;
    CASE 8
      'Backspace:
      Text = LEFT(Text, LEN(Text) - 1)
      LOCATE row, col: PRINT Text + Csr + SPACE(1);
    CASE 13
      'Enter:
      LOCATE row, col: PRINT Text + SPACE(1)
      EXIT DO
    END SELECT
  LOOP

END SUB


Zusätzliche Informationen und Funktionen
  • Das Code-Beispiel wurde am 16.10.2007 von MitgliedLothar Schirm angelegt.
  • Die aktuellste Version wurde am 24.10.2007 von MitgliedLothar Schirm gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen