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!


Referenz - MULTIKEY

Referenz-Navigation

 

Syntax: MULTIKEY(Scancode)
Typ: Funktion
Kategorie: Eingabe

MULTIKEY reagiert auf (multiple) Tastendrücke. Diese Funktion zeigt an, ob die angegebene Taste gerade gedrückt wird.

MULTIKEY kann erst seit Version v0.14 im Konsolen-Modus eingesetzt werden; in früheren Versionen von FreeBASIC war der Einsatz von MULTIKEY auf Grafikmodi beschränkt. Das Arbeiten mit MULTIKEY ist komfortabler als der alleinige Einsatz von INKEY; da das gleichzeitige Drücken zweier Tasten mit einer einfachen AND-Verknüpfung geschehen kann:

IF MULTIKEY(&H01) AND _
(MULTIKEY(&H2A) OR MULTIKEY(&H36) THEN ...


Der Code hinter THEN würde ausgeführt, wenn Escape (Code &H01) und gleichzeitig (AND) entweder die linke Shifttaste (Code &H2A) oder (OR) die rechte Shifttaste (Code &H36) gedrückt sind. Mit INKEY dagegen wäre eine Unterscheidung zwischen linker und rechter Shift- Taste gar nicht möglich. Da MULTIKEY den Tastaturpuffer nicht leert, bietet es sich an, in Schleifen die Bedingung zum Verlassen der Schleife mit INKEY zu prüfen, während alle anderen Tastatureingaben bequem mit MULTIKEY ausgewertet werden, wie in diesem Beispiel. Ist dies nicht möglich, kann der Tastaturpuffer mit diesem Code leer gehalten werden:

WHILE LEN(INKEY) : WEND



Beispiel:

DIM AS INTEGER work_page, x, y
 'Grafikfenster 640x480x8 mit zwei Seiten initialisieren
SCREENRES 640, 480, ,2
COLOR 2, 15
work_page = 0
x = 320
y = 240
DO
    sleep 1
    ' Eine Seite beschreiben, während die andere angezeigt wird
    SCREENSET work_page, work_page XOR 1
     ' Überprüfe die Pfeiltasten und aktualisiere die Koordinaten
    ' x, y entsprechend.
    IF MULTIKEY(&h4D) AND x < 639 THEN x += 1
    IF MULTIKEY(&h4B) AND x >   0 THEN x -= 1
    IF MULTIKEY(&h50) AND y < 479 THEN y += 1
    IF MULTIKEY(&h48) AND y >   0 THEN y -= 1
    CLS
    CIRCLE(x, y), 30, , , , ,F
    ' Seite wechseln
    work_page = work_page XOR 1
LOOP UNTIL INKEY = CHR(27) ' Bis ESC gedrückt wird weitermachen
' Setze aktive und sichtbare Bildschirmseite wieder auf 0
SCREENSET
PRINT "Beliebige Taste zum Beenden druecken."
GETKEY



Anmerkung: Sämtliche Keyboard-Scancodes sind in der Datei fbgfx.bi als Symbole mit verständlichen Namen definiert. Indem Sie diese Datei mit BefehlsreferenzeintragINCLUDE einbinden, ersparen Sie sich beim Programmieren das Nachsehen, welcher Code für welche Taste steht.

Beispiel:

#INCLUDE "fbgfx.bi"
IF MULTIKEY(FB.SC_F1)    THEN PRINT "F1 wurde gedrückt."
IF MULTIKEY(FB.SC_LEFT)  THEN PRINT "Linke Pfeiltaste wurde gedrückt."
IF MULTIKEY(FB.SC_RIGHT) THEN PRINT "Rechte Peiltaste wurde gedrückt."
'...


Sollte die Datei fbgfx.bi sich nicht in Ihrem Include-Verzeichnis befinden, können Sie den Code verwenden, der unter DOS Keyboard Scancodes der Referenz hinterlegt ist.

Unterschiede zu QB:

Unterschiede zu früheren Versionen von FreeBASIC:

Siehe auch:
BefehlsreferenzeintragINKEY, BefehlsreferenzeintragSCREENRES, BefehlsreferenzeintragDOS Keyboard Scancodes


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 21.07.2007 von AdministratorSebastian angelegt.
  • Die aktuellste Version wurde am 17.08.2011 von Redakteurnemored gespeichert.
  Versionen Versionen