Используя 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
через 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
показывает отсутствие различий в анализируемом блоке (== []
), второй сценарий приводит к ошибке:
** Script Error: cb1 word has no context
** Where: forever
** Near: new/var: bind to-word :var :var
Я потратил часы, пытаясь понять, почему, и я думаю, что каким-то образом новые слова нужно привязать к конкретному контексту, но я еще не нашел никакого решения проблемы.
Что мне нужно сделать?