キーボード・バッファで、キー入力を待って、最初のキーの文字を返します。
構文:
用法:
result = Inkey
[$]
戻り値:
キーボード・バッファの、先頭文字を返します。見つからなければ、空の文字 ("") を返します。
記述:
キーボード・バッファを覗いて、見つけたものの先頭文字の
String 表現を返します。
そして、キーは、バッファから取り外されます。キー入力した文字は、画面に表示されません。
キーボード・バッファが空ならば、 キー入力を待つことなく、直ぐに、空の文字 (
"") を返します。
入力されたキーが
ASCII文字セット の場合、その文字 1文字の
String が返されます。
入力されたキーが「拡張」キー (テンキー、カーソル、ファンクション・キー) の場合、2文字の
String が返されます。最初の文字列は拡張文字 (
以下の方言の違いを参照) であり、2番目の文字列はキーボードの生のスキャンコードです。
キーボード入力を取得する FB の組み込み機能については、
キーボード入力 (基本)を参照ください。
キーボード・バッファを入力しないとき、この関数で、独自に、Shift、Ctrl、Alt、および AltGr キーを読むことは、できません。(もっとも、明らかでしょうが、
「Shift-A」は「Control-A」などと違って、
Inkey で返されます。「Alt-A」は、上の拡張キーに該当します。)
キーボード・バッファが空の間は、キー入力を待つ、
Input()、
Getkey、
Sleep についても、比較参考してください。
例:
Print "キー q を入力すると終了します。"
Do
Sleep 1, 1
Loop Until Inkey = "q"
'' -lang fblite または qb でコンパイルする
#lang "fblite"
#if __FB_LANG__ = "qb"
#define EXTCHAR Chr$
(0)
#else
#define EXTCHAR Chr
(255)
#endif
Dim k As String
Print "何かキー入力して下さい。「Esc」キー入力で終了します。"
Do
k = Inkey$
Select Case k
Case "A" To "Z", "a" To "z":
Print "文字:
" & k
Case "1" To "9":
Print "数字:
" & k
Case Chr$(32):
Print "Space"
Case Chr$(27):
Print "Escape"
Case Chr$(9): Print "Tab"
Case Chr$(8): Print "Backspace"
Case Chr$(32) To Chr$
(127)
Print "記号:
" & k
Case EXTCHAR & "G":
Print "Up Left / Home"
Case EXTCHAR & "H":
Print "Up"
Case EXTCHAR & "I":
Print "Up Right / PgUp"
Case EXTCHAR & "K":
Print "Left"
Case EXTCHAR & "L":
Print "Center"
Case EXTCHAR & "M":
Print "Right"
Case EXTCHAR & "O":
Print "Down Left / End"
Case EXTCHAR & "P":
Print "Down"
Case EXTCHAR & "Q":
Print "Down Right / PgDn"
Case EXTCHAR & "R": Print "Insert"
Case EXTCHAR & "S": Print "Delete"
Case EXTCHAR & "k": Print "Close window / Alt-F4"
Case EXTCHAR & Chr$(59) To EXTCHAR & Chr$
(68)
Print "Function key:
F" & Asc(k, 2) - 58
Case EXTCHAR & Chr$(133) To EXTCHAR & Chr$
(134)
Print "Function key:
F" & Asc(k, 2) - 122
Case Else
If Len(k) = 2 Then
Print Using "Extended character:
chr$(###, ###)";
Asc(k, 1);
Asc
(k, 2)
ElseIf Len(k) = 1 Then
Print Using "Character chr$(###)";
Asc
(k)
End If
End Select
If k = Chr$(27) Then Exit Do
Sleep 1, 1
Loop
方言差:
QBからの違い:
参照: