QuickWin 関数:キーボードからの 1 文字の入力を読み取り,バッファに保存せずにその文字を表す ASCII 値を返します。
モジュール:USE DFLIB
形式
result = INCHARQQ ( )
結果
結果の型は INTEGER(2) です。結果は,ASCII キー・コードです。
キーストロークは,現在フォーカスがある子ウィンドウから読み取られます。キーストロークが入力される前に INCHARQQ を呼び出さなければなりません (INCHARQQ はキーボード・バッファを読みません)。この関数は入力をエコーしません。ファンクション・キーに対して,INCHARQQ は上位 8 ビットとして 0xE0 を,下位 8 ビットとして ASCII コードを返します。
矢印キーに対して,INCHARQQ は上位 8 ビットとして 0xF0,下位 8 ビットとして ASCII コードを返します。矢印キーを読めるようにするには,PASSDIRKEYSQQ 関数を使用しなければなりません。エスケープ文字 (上位 8 ビット) は,GETCHARQQ のものとは異なっています。Console アプリケーションは,PASSDIRKEYSQQ を必要としませんし,使うことができません。
互換性
STANDARD GRAPHICS QUICKWIN GRAPHICS LIB
関連情報
GETC,GETCHARQQ,MBINCHARQQ,PASSDIRKEYSQQ,QuickWin の使用,READ
例
use dflib integer*4 res integer*2 exchar character*1 ch, ch1 Print *,"Type X to exit, S to scroll, D to pass Direction keys" 123 continue exchar = incharqq() ! エスケープを検証 ! 0xE0 0x?? はファンクションキー ! 0xF0 0x?? は矢印キー ch = char(rshift(exchar,8) .and. #00FF) ch1= char(exchar .and. #00FF) if (ichar(ch) .eq. 224) then print *,"function key = ",ichar(ch), " ",ichar(ch1)," ",ch1 goto 123 endif if (ichar(ch) .eq. 240) then print *,"direction key = ",ichar(ch), " ",ichar(ch1)," ",ch1 goto 123 endif print *,"other key = ",ichar(ch)," ",ichar(ch1)," ",ch1 if(ch1 .eq. 'S') then res = passdirkeysqq(.false.) print *, "Entering Scroll mode" endif if(ch1 .eq. 'D') then res = passdirkeysqq(.true.) print *, "Entering Direction keys mode" endif if(ch1 .ne. 'X') go to 123 end