问题描述
ON ESCAPE ANYWHERE
ON ESCAPE ...
然而,这似乎不起作用,因为主应用程序已经有一个 ON ESCAPE ANYWHERE
。是否有类似 ON ESCAPE OVERWRITES DEFAULT
之类的东西可以为我的子窗口创建事件?
提前致谢
解决方法
来自 documentation 注释:
使用 ON 语句定义的触发器将一直有效,直到下列情况之一 发生以下情况:
- 另一个 ON 语句为同一事件和小部件定义了另一个触发器(或 REVERT)
- 对于非持久触发器,出现 ON 语句的过程或触发器块将终止
所以我认为您的主要应用程序触发器是在您自己的触发器之后定义的,覆盖它。如果你足够具体,你应该没问题:
on escape anywhere do:
message 'escaping from anywhere' view-as alert-box.
end.
define frame fr1
cc1 as char
cc2 as char
with side-labels
.
do with frame fr1:
enable all.
on escape of cc1 do:
message "escaping from cc1 in frame 1" view-as alert-box.
end.
end.
view frame fr1.
wait-for close of frame fr1.