使用 REBOL/View 2.7.8 Core,我想通过自动将单词分配给各种布局项来预先准备视图布局,如下例所示。
代替
prepared-view: [across
cb1: check
label "Checkbox 1"
cb2: check
label "Checkbox 2"
cb3: check
label "Checkbox 3"
cb4: check
label "Checkbox 4"
]
view layout prepared-view
我因此喜欢这句话cb1
thru cb5
自动创建,例如:
prepared-view2: [ across ]
for i 1 4 1 [
cbi: join "cb" i
cbi: join cbi ":"
cbi: join cbi " check"
append prepared-view2 to-block cbi
append prepared-view2 [
label ]
append prepared-view2 to-string join "Checkbox " i
]
view layout prepared-view2
然而,虽然difference prepared-view prepared-view2
shows no正在解析的块中的差异(== []
),第二个脚本会导致错误:
** Script Error: cb1 word has no context
** Where: forever
** Near: new/var: bind to-word :var :var
我花了几个小时试图理解原因,并且我认为新词需要以某种方式与特定上下文绑定,但我还没有找到解决该问题的任何方法。
我需要做什么?
bind prepared-view2 'view
view layout prepared-view2
创建正确的绑定。
这是动态创建布局的另一种方法
>> l: [ across ]
== [across]
>> append l to-set-word 'check
== [across check:]
>> append l 'check
== [across check: check]
>> append l "test"
== [across check: check "test"]
>> view layout l
然后您可以使用循环创建不同的变量以添加到您的布局中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)