Code-Beispiel
Text editieren im Graphik-Mode - Ersatz fuer INPUT
Lizenz: | Erster Autor: | Letzte Bearbeitung: |
k. A. | Lothar 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 | |||||||
---|---|---|---|---|---|---|---|
|
|