我有一个链接到数据库字段的编辑器。 当用户按下某些键时,程序的行为应该不同, 对于其余的键,它应该保持默认行为。我正在使用这部分代码:
ON ANY-KEY OF editor_1 IN FRAME F-Main
DO:
APPLY LAST-EVENT:LABEL TO SELF.
RETURN NO-APPLY.
END.
问题是,当执行APPLY LAST-EVENT:LABEL时,编辑器不会表现为默认值。
默认行为的一些示例,即未触发任何键的行为:
在编辑器中触发任意键后,程序的工作方式如下:
无论如何触发任意键而不覆盖默认行为?
注意:Progress 4GL是v11.3,从windows执行。
答案 0 :(得分:1)
您应该将键标签映射到要应用的键FUNCTION。
类似的东西:
ON ANY-KEY OF editor_1 IN FRAME F-Main
DO:
if last-event:label = "backspace" then
apply delete-char to self.
else
apply lastkey to self.
/* use a CASE statement to extend this... */
RETURN NO-APPLY.
END.
答案 1 :(得分:1)
我谈到了进展,但没有解决这个问题的方法。 ANY-KEY的这个问题与编辑有关。
您可以将某些键标签映射到特定键FUNCTION,但是某些事件不可能(例如,光标移动)。
最后我不得不触发特殊键,但在这种特殊情况下,它更像是ANY-KEY。
答案 2 :(得分:0)
不是在任何键上触发事件,为什么不为这些特殊键执行操作呢?
例如,control-C行为将在此触发器中:
ON CTRL-C of editor_1 IN FRAME F-Main