我被要求在* .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.
在查看进度网站时,我发现以下URL,解释了ON
-statement:
ON CHOOSE OF b_next, b_prev DO:
IF SELF:LABEL = "Next" THEN
...
这给我一些问题:
ON F5
一行代码时,F5(SEARCH-KEYBOARD
)事件有两个事件处理程序。为什么还要编译并编译,为什么要使用已经存在的代码行而不是我添加的代码?SELF
对象来了解哪个窗口小部件启动事件处理程序),但是我ON {&SEARCH-KEYBOARD},{&SEARCH-MOUSE} OF ...
可以知道一个窗口小部件上的不同事件(例如我)吗?该事件被触发,SEARCH-KEYBOARD
或SEARCH-MOUSE
?在文档的注释中,您指出:
*使用ON语句定义的触发器将一直有效,直到发生以下情况之一:*另一个ON语句为同一事件和小部件定义了另一个触发器(或REVERT)
因此,如果我没看错的话,最后一个ON会获胜,所以我猜想您的ON在另一个ON之后。
您可以使用LAST-EVENT系统句柄的LABEL属性来获取事件。
Dominique编辑以供参考
例:
ON {&SEARCH-KEYBOARD},{&SEARCH-MOUSE} OF particular_fill-in_Field
DO:
MESSAGE "The launched event is [" LAST-EVENT:LABEL "]" VIEW-AS ALERT-BOX.
...
END.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句