如何将菜单放在rebol列表(VID)中?

时间:2015-03-20 16:50:22

标签: rebol rebol2

我在Rebol2中有一个VID列表,我想让其中一列成为某种菜单,我可以从中选择一组选项中的值。我使用的代码基于list-widget-example.r。这组选择是动态的。

我尝试使用"选择"和"旋转"有一套静态的选择,但表现不佳。使用"选择"总是使用第一个值和"旋转"突然打开一个黑色的窗户。

2 个答案:

答案 0 :(得分:2)

这是@AntonRolls code的精简版,明确回答了这个问题。它是"一个相当基本的例子,它展示了如何在VID列表中使用CHOICE菜单。"

members: [ {Gandalf} {Bilbo} {Frodo} ]
db: [
    ["1" "question 1 " "default1"]
    ["2" "question 2"  ""]
    ["3" "question 3"  "default3"]
]
view out: layout [
    mylist: list 450x240 [
        across 
        t1: text 50x20
        t2: text 200x20 para [wrap?: true] 
        t3: text 200x20 effect [merge luma 10] font [] [
        ][
            ; alt-action (right-click action)
            use [row][
                if row: face/user-data [ ; face knows index
                    choose/window/offset members func [face value][
                        poke db/:row 3 face/text
                    ] out (
                        mylist/offset + (t3/offset * 1x0) 
                        + (row - 1 * t3/size * 0x1)
                    )
                ]
            ]
        ]
    ] supply [
        either count <= length? db [
            face/user-data: count ; store row index
            switch index [
                1 [face/text: db/:count/1]
                2 [face/text: db/:count/2]
                3 [face/text: db/:count/3]
            ]
        ][
            face/user-data: face/text: none
        ]
    ]

答案 1 :(得分:0)

这是一个相当基本的例子,展示了如何使用CHOICE菜单 在VID列表中。

https://s3-ap-southeast-1.amazonaws.com/antonrolls/rebol/gui/iterated/demo-list-of-texts-with-context-menu.r

(我为完整性粘贴了代码,但我还没有完全阅读其他答案,抱歉。请忽略此编辑。对于混乱/噪音/干扰道歉。)