Как поместить меню в список реболов (VID)?
У меня есть список VID в Rebol2, и я хочу сделать один из столбцов своего рода меню, из которого я могу выбрать значение из набора вариантов. Код, который я использую, основан на list-widget-example.r. Набор вариантов является динамическим.
Я пытался использовать "выбор" и "поворотный" со статическим набором вариантов, но это плохо сработало. При использовании "выбора" всегда использовалось первое значение, а "поворотный" открывал черное окно.
2 ответа
Вот урезанная версия кода @AntonRolls, которая явно отвечает на вопрос. Это "довольно элементарный пример, который показывает, как использовать меню ВЫБОР в VID LIST".
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
]
]
Это довольно простой пример, который показывает, как использовать меню ВЫБОР в VID LIST.
(Я вставил код для полноты, но я не прочитал другие ответы, извините. Пожалуйста, игнорируйте это изменение. Мои извинения за беспорядок / шум / беспокойство.)