Это похоже на мой предыдущий вопрос ( Использование TAB для перемещения между полями на красном языке). Поскольку у меня много полей, я хочу использовать список полей. Однако следующий код не работает:
Red []
view [
text "Value of x:" f1: field "" on-key [handle-key event] return
text "Value of y:" f2: field "" on-key [handle-key event] return
text "Third: " f3: field "" on-key [handle-key event] return
text "Fourth:" f4: field "" on-key [handle-key event] return
text "Read Sum:" tt: text "" on-key [handle-key event] return
do[
fldlist: [f1 f2 f3 f4]
focusnum: 1
maxfocusnum: length? fldlist
handle-key: function [e] [
print rejoin ["focusnum = " focusnum] ; OUTPUT: "focusnum = none"
k: e/key
if k = tab [
either e/shift?
[ focusnum: focusnum - 1
if focusnum < 1 [focusnum: maxfocusnum]
win/selected: fldlist/:focusnum]
[ focusnum: focusnum + 1
if focusnum > maxfocusnum [focusnum: 1]
win/selected: fldlist/:focusnum]
] ] ]
button "Calculate" [
tt/text: to-string ((to-integer f1/text) + (to-integer f2/text))
]
button "Quit" [quit]
do [win: self win/selected: f1]
]
focusnum
выдается как none
. Где проблема и как это можно решить.