【发布时间】:2015-02-16 14:50:56
【问题描述】:
我想动态地将一个按钮添加到视图的布局中,导致此添加的参与者属于已经是布局一部分的按钮。
我是从这个开始的:
REBOL [title: "Dynamic Button Addition"]
tilesize: 60x60
curtile: 1
stylize [
p: button [
facets: [init-size: tilesize max-size: tilesize]
actors: [
on-action: [
++ curtile
append tiles compose [ p (to-string curtile) ]
print ? tiles/options/content
v/redraw
]
]
]
]
v: [
tiles: hgroup [ p "1" ]
]
view v
...tiles/options/content 的值似乎不会随着每次点击而改变。
如果进行这些更改,我可以更改它:
append tiledata compose [ p (to-string curtile) ]
和
tiledata: [ p "1" ]
v: [
tiles: hgroup tiledata
但是,这不会导致屏幕发生任何变化。如果我用这个替换最后四行:
v: view [
tiles: hgroup tiledata
]
...所以v 现在是视图而不是视图的布局,单击时出现此错误:
** Script error: v has no value
** Where: actor all foreach do-actor unless do-face if actor all foreach do-actor if do-event do-event if do-event either -apply- wake-up loop -apply- wait forever try do-events if view do either either either -apply-
** Near: actor face :data
这对我来说很有意义,因为 v 尚未完成定义,直到我退出程序 IIUC。
那么,我如何在程序结束之前更改v,但在它被传递给view 之后?
【问题讨论】:
标签: user-interface dynamic rebol3