【发布时间】:2020-12-30 12:32:50
【问题描述】:
我被要求在 *.w 文件中的填充字段上实现事件处理程序(如果是 F5,应该做一些事情)。
我开始做以下事情:
ON F5 OF particular_fill-in_Field
DO:
...
END.
这不起作用,后来我意识到源代码中已经存在以下内容:
在包含文件中:
&GLOBAL-DEFINE SEARCH-KEYBOARD "F5":u
&GLOBAL-DEFINE SEARCH-MOUSE MOUSE-SELECT-DBLCLICK
内部 *.w 文件:
ON {&SEARCH-KEYBOARD},{&SEARCH-MOUSE} OF particular_fill-in_Field
DO:
...
END.
在查看进度网站时,我发现following URL,解释ON-statement:
ON CHOOSE OF b_next, b_prev DO:
IF SELF:LABEL = "Next" THEN
...
这给我留下了一些问题:
- 当我添加
ON F5行时,F5 (SEARCH-KEYBOARD) 事件有两个事件处理程序。为什么这甚至可以编译,并且在编译时,为什么它采用了已经存在的代码行而不是我添加的代码行? - URL 上的示例显示了如何在不同的小部件上处理相同的事件(您可以使用
SELF对象来了解哪个小部件启动了事件处理程序),但是在一个小部件上的不同事件呢(例如在我的情况下) ,ON {&SEARCH-KEYBOARD},{&SEARCH-MOUSE} OF ...),我能知道触发了哪个事件,SEARCH-KEYBOARD或SEARCH-MOUSE?
【问题讨论】:
标签: event-handling openedge progress-4gl