Я полагаю, что радиокнопки были разработаны так, что вы назвали и проверили каждую кнопку:
mycolours: view layout [
red: radio of 'colours label "Red"
green: radio of 'colours label "Green"
blue: radio of 'colours label "Blue"
]
probe red/data
probe green/data
probe blue/data
Чтобы получить ответ от слова «цвета», вам придется перебирать лица, чтобы найти лица с этим отношением.Вот быстрый и грязный итератор ( walk-vid ):
walk-vid: use [level][
level: 0
func [[catch] face [object!] callback [function!] /deep][
unless in face 'pane [throw make error! "Not a face"]
either deep [level: level + 1][level: 0 bind second :callback 'level]
do [callback face]
case [
block? face/pane [
foreach pane face/pane [walk-vid/deep pane :callback]
]
object? face/pane [
walk-vid/deep face/pane :callback
]
]
either deep [level: level - 1][level: 0]
face
]
]
Итак, итерируйте грани, найдите связь, найдите выбранное лицо.Давайте сделаем функцию для этого:
which-radio: func [face [object!] group [word!] /local selected][
walk-vid face func [face][all [face/related = group face/data selected: face]]
selected
]
Таким образом, чтобы обернуть:
probe which-radio mycolours 'colours
Чтобы сделать жизнь проще, вы можете добавить значение лица / текста к переключателю (меткине привязан к кнопке):
radio of 'colours "Red" label "Red"