首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rebol3中的动态布局添加

Rebol3中的动态布局添加
EN

Stack Overflow用户
提问于 2015-02-16 22:50:57
回答 1查看 82关注 0票数 1

我想动态地将一个按钮添加到视图的布局中,导致添加的参与者属于一个已经是布局一部分的按钮。

我是这样开始的:

代码语言:javascript
复制
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

每次单击时,...which的值似乎都不会发生变化。

如果进行以下更改,我可以让它更改:

代码语言:javascript
复制
                append tiledata compose [ p (to-string curtile) ]

代码语言:javascript
复制
tiledata: [ p "1" ]
v: [
    tiles: hgroup tiledata

但是,这不会在屏幕上引起任何变化。如果我用下面的代码替换最后四行:

代码语言:javascript
复制
v: view [
    tiles: hgroup tiledata
]

...so v现在是视图,而不是视图的布局,当我单击时,我得到这个错误:

代码语言:javascript
复制
** 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

这对我来说是有意义的,因为在我退出程序IIUC之前,v还没有完成定义。

那么,如何在程序结束之前,但在将其传递给view之后对v进行更改

EN

回答 1

Stack Overflow用户

发布于 2015-02-25 16:10:57

不是很好,但是如果你用

代码语言:javascript
复制
               v/redraw

有了这两行

代码语言:javascript
复制
                unview/all          
                view v

how to update a layout that has already be viewed上有一个真正的动态示例

我会简化它

代码语言:javascript
复制
stylize [
  tbox: hpanel [
    actors: [
        on-make: [
            append face/options [
                content: [
                ]
            ]
            do-actor/style face 'on-make none 'hpanel
        ]
    ]
  ]
]

view/across [
  button "button 1"
    on-action [
        append-content test compose [
            button ( join "button "   2 + length? test/gob)
        ]
    ]   
  test: tbox
 ]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28544063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档