我想在 Rebol 3 按钮处理程序 (GUI) 中设置一个变量,并在窗口关闭后使用该值。如何获取 View block 之外的值? 下面是一个示例代码:
view [
v_username: field
button "Submit" on-action [
username: get-face v_username
close-window face
]
]
probe username
无论 v_username 的内容如何,结果都是“”。
是否必须将其“声明”为全局变量?我应该从 View 的返回值中获取这个值吗?
最佳答案
调用时的'on-action
block 被包装在函数
中(Rebol 函数,其中设置字被假定为该函数的本地函数)。您有几个选项可以解决此问题:
使用对象来存储值(设置路径未绑定(bind)在
函数
内):values: context [username: none] view [... on-action [values/username: get-face ...]]
使用
'set
设置单词。我发现这不太可靠,因为它不确定您所设置的单词的上下文:view [... on-action [set 'username get-face ...]]
尽管最好的选择可能是记住您分配给样式的单词与您正在使用的上下文相关,因此:
view [username-field: field ...] username: get-face username-field
关于scope - 如何在 Rebol 3 View 中设置变量并在窗口关闭后使用该值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17797150/