我想使用ACCEPT
语句捕获箭头击键。我现在有这个:
ACCEPT MY-DUMMY
CONTROL KEY IN MY-KEYSTROKE
这适用于向上和向下箭头。但是,对于左箭头和右箭头,它将不起作用,因为运行时使用这些键在输入字段中导航。
有没有办法只为这个ACCEPT
捕获那些击键,并阻止主机使用它们?
除了接受的答案:
可以将异常代码添加到异常键中,以区分左右箭头键击。
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
答案 0 :(得分:2)
对于ACUCOBOL(引自ACUCOBOL runtime manual)
默认情况下,左箭头和右箭头充当编辑键,向上和向下箭头充当编辑键和异常键。如果需要,可以在运行时更改箭头的行为以在不同模式之间切换。您可以通过
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
。