В следующем коде я создаю 3 окна с текстом от 1 до 3, в четвертом окне я хотел бы показать текст окна, над которым курсирует моя мышь. Поэтому я устанавливаю onMouseEnter FProperty для каждого из ящиков, где я меняю строку четвертого поля и скажу, чтобы он перерисовывал.Рисунок не показывает правильную строку в событии
bool redraw = false;
str s = "0";
Figure getTextbox() {
return computeFigure(bool() {bool temp = redraw; redraw = false; return temp; },
Figure() {
return text(str() {return s; });
});
}
list[Figure] boxes = [];
for (i <- [1..4]) {
boxes += box(text(toString(i)), onMouseEnter(void() {s = toString(i); redraw = true; }));
}
Figure changer = box(getTextbox());
render(vcat(boxes + changer));
Однако, по какой-то причине все три коробки покажет метод OnMouseEnter изменить текст четвертого ящика в «3» (значение последнего ящика) вместо их индивидуальной стоимости.
Любая подсказка почему? Благодаря!