添加 Red Language 系列中的 GUI 项目

Adding GUI items from a series in Red Language

我想添加系列中的 GUI 项目。我正在尝试以下代码,但它不起作用:

mylist: ["first" "second" "third" "fourth" ]

view[
    foreach i mylist [
        text i  ]]

错误是:

*** Script Error: VID - invalid syntax at: [foreach ll mylist]
*** Where: do
*** Stack: view layout cause-error 

问题出在哪里,如何解决?感谢您的回答。

你的问题是你在混合方言。您在 View 块中使用了 VID 方言,但您也在那里使用了 DO 方言,而 View 无法理解。

至少在 Rebol 中,您会添加一个 do 块作为 VID 方言中的初始化序列,例如

view [
   VID dialect goes here ...
   do [ do dialect stuff that could initialize gui elements go here ]
]

记住……

view [... what goes in here...]

...是方言,不是正码。这是一种特殊的方言,具有一定的评价性,但通常的规则并不总是适用。

不要忘记方言只是一组值,就像 Red 中的其他任何东西一样。您可以这样预先构建它:

view collect [
    foreach i mylist [
        keep 'text keep i
    ]
]

您可以在 VIEWCOLLECT 之间粘贴一个 PROBE 以查看生成的内容,并且 COLLECT/KEEP 为您提供了很多调整值的范围最终出现在您的视图规范中。