Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [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!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Eingaberoutine für QB

Uploader:AdministratorSebastian
Datum/Zeit:24.03.2008 12:12:13

DECLARE SUB INPUTEXT (Prompt$, Var$)

'Beispiel fr eine Eingaberoutine, die sich die letzten Eingaben "merkt"
'und bei Druck auf PFEIL-HOCH als Eingabevorschlag wiederherstellt
'----
'von Sebastian Steiner, 24.03.2008. (Fr QBasic)
'----
'Der Quelltext kann frei verwendet werden, es wird jedoch keine Haftung
'fr seine Richtigkeit bernommen.

DIM SHARED StoredInput$(1 TO 5), SICount%

CLS

INPUTEXT "Eingabe 1: ", v$
INPUTEXT "Eingabe 2: ", c$
INPUTEXT "Eingabe 3: ", e$

PRINT "Fertig."

SLEEP
END

SUB INPUTEXT (Prompt$, Var$)
PRINT Prompt$;
Y% = CSRLIN
StartX% = POS(StartY%)
x% = StartX%
PRINT ""
e$ = ""
SI% = UBOUND(StoredInput$)
DO
  k$ = INKEY$
  IF k$ <> "" THEN
        SELECT CASE k$
        CASE CHR$(8)
                IF LEN(e$) = 0 THEN
                        BEEP
                ELSE
                        e$ = LEFT$(e$, LEN(e$) - 1)
                        LOCATE Y%, StartX%: PRINT e$; " "
                        x% = x% - 1
                END IF
        CASE CHR$(10), CHR$(13)
                Prompt$ = e$
                FOR i% = 1 TO UBOUND(StoredInput$) - 1
                        StoredInput$(i%) = StoredInput$(i% + 1)
                NEXT i%
                StoredInput$(UBOUND(StoredInput$)) = e$
                IF SICount% < UBOUND(StoredInput$) THEN SICount% = SICount% + 1
                EXIT SUB
        CASE CHR$(0) + CHR$(72)
                FOR i% = SI% TO 1 STEP -1
                        IF StoredInput$(i%) <> "" THEN
                                LenOld% = LEN(e$)
                                IF LEN(StoredInput$(i%)) < LenOld% THEN
                                        App$ = STRING$((LenOld% - LEN(StoredInput$(i%))), 32)
                                ELSE
                                        App$ = ""
                                END IF
                                LOCATE Y%, StartX%: PRINT StoredInput$(i%); App$
                                e$ = StoredInput$(i%)
                                EXIT FOR
                        END IF
                NEXT i%
                SI% = SI% - 1
                IF SI% < (UBOUND(StoredInput$) - SICount% + 1) THEN SI% = UBOUND(StoredInput$)
        CASE ELSE
                IF LEN(k$) = 1 THEN
                        IF ASC(k$) > 31 THEN
                                e$ = e$ + k$
                                x% = x% + 1
                                LOCATE Y%, StartX%: PRINT e$
                        END IF
                END IF
        END SELECT
  END IF
LOOP
END SUB