2016-07-06 16 views
1

ACCEPTステートメントを使用して矢印キーストロークをキャプチャします。私は今これを持っています:COBOLでバックスペースキーまたは左右の矢印キーをキャプチャすることはできますか?

ACCEPT MY-DUMMY 
    CONTROL KEY IN MY-KEYSTROKE 

これは上下矢印のために働いています。ただし、左矢印と右矢印の場合、これらのキーは入力フィールド内をナビゲートするためにランタイムによって使用されるため、機能しません。

これらのキーストロークをキャプチャする方法は、このACCEPTのみであり、ホストがそれらを消費するのを防ぐ方法はありますか。

  • コンパイラ:ACUCOBOL-GT(私はどのバージョンを知っているか、まだ解放されません)
  • オペレーティングシステム:Windowsの受け入れ答えに加えて10

左と右の区別を区別するために例外キーの前に例外コードを付加することができますwキーストローク。デフォルトでは

SET ENVIRONMENT "KEYSTROKE" TO "EXCEPTION=054,Left kl" 
SET ENVIRONMENT "KEYSTROKE" TO "EXCEPTION=055,Right kr" 
SET ENVIRONMENT "KEYSTROKE" TO "EXCEPTION=201,BkSp ZB" 

ACCEPT DUMMY 
    CONTROL KEY IN MY-KEYSTROKE 
EVALUATE (MY-KEYSTROKE) 
    WHEN 054 
     PERFORM DO-SOMETHING 
END-EVALUATE 
+1

お使いのコンパイラとバージョンはどちらですか?どのOS? – cschneid

+1

答え:はいそれは... あなたがそれを行う方法を知りたいのであれば、それはあなたが別の道を行く必要があるコンパイラに大きく依存します。 ACUCOBOLでは、カーソル値を使用する場合は、ファンクションキーにマップするキーストロークを設定できます。他のベンダーは異なる拡張機能を持っています。 1回のキー押下だけでCライブラリにアクセスできるのであれば、 'CALL 'getch''(システムがcursesを使用している場合)のようなものが良いオプションかもしれません。 –

+0

私は答えに例外キーを追加しました。更新していただきありがとうございます。 –

答えて

2
ACUCOBOL runtime manualより引用)ACUCOBOLについては

、左と右の矢印は、編集キーとして機能し、上下の矢印は、編集と例外キーの両方として動作します。実行時に矢印の動作を変更して、必要に応じて異なるモード間で切り替えることができます。これは、SET ENVIRONMENT動詞と適切なKEYSTROKEの設定で行います。

SET ENVIRONMENT "KEYSTROKE" TO "EXCEPTION=055,Left kl" 
SET ENVIRONMENT "KEYSTROKE" TO "EXCEPTION=056,Right kr" 
ACCEPT OMITTED CONTROL KEY IN MY-KEYSTROKE 
SET ENVIRONMENT "KEYSTROKE" TO "EDIT=Left kl" 
SET ENVIRONMENT "KEYSTROKE" TO "EDIT=Right kr" 

ACUCOBOL User Guide, key table参照してください。

BTW:「新しい」ACUCOBOLバージョン(「完全に古くなっていない」と読む)は、ACCEPT OMITTEDをサポートしています。

関連する問題