是否可以捕获 COBOL 中的退格键或左右箭头键?
Is it possible to capture the backspace or left and right arrow keys in COBOL?
我想使用 ACCEPT
语句捕获箭头击键。我现在有这个:
ACCEPT MY-DUMMY
CONTROL KEY IN MY-KEYSTROKE
这适用于向上和向下箭头。但是,对于左右箭头,它不起作用,因为运行时使用这些键在输入字段内导航。
是否有任何方法可以仅捕获此 ACCEPT
的这些击键并防止主机使用它们?
- 编译器:ACUCOBOL-GT(我还不知道是哪个版本)
- 操作系统:Windows10
除了已接受的答案:
可以将异常代码添加到异常键前面,以区分左右箭头击键。
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
对于 ACUCOBOL(引用自 ACUCOBOL runtime manual)
By default, the left and right arrows act as edit keys, and the up and down arrows act as both edit and exception keys. You can change the behavior of the arrows at run time to switch between different modes if you need to. You do this via the SET ENVIRONMENT
verb and the appropriate KEYSTROKE
settings.
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。
顺便说一句:"Newer" ACUCOBOL 版本(读作 "not completely outdated")支持 ACCEPT OMITTED
。
我想使用 ACCEPT
语句捕获箭头击键。我现在有这个:
ACCEPT MY-DUMMY
CONTROL KEY IN MY-KEYSTROKE
这适用于向上和向下箭头。但是,对于左右箭头,它不起作用,因为运行时使用这些键在输入字段内导航。
是否有任何方法可以仅捕获此 ACCEPT
的这些击键并防止主机使用它们?
- 编译器:ACUCOBOL-GT(我还不知道是哪个版本)
- 操作系统:Windows10
除了已接受的答案:
可以将异常代码添加到异常键前面,以区分左右箭头击键。
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
对于 ACUCOBOL(引用自 ACUCOBOL runtime manual)
By default, the left and right arrows act as edit keys, and the up and down arrows act as both edit and exception keys. You can change the behavior of the arrows at run time to switch between different modes if you need to. You do this via the
SET ENVIRONMENT
verb and the appropriateKEYSTROKE
settings.
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。
顺便说一句:"Newer" ACUCOBOL 版本(读作 "not completely outdated")支持 ACCEPT OMITTED
。