2015-02-16 2 views
1

Я хотел бы показать/скрыть породу ссылок в соответствии со значением коммутатора в пользовательском интерфейсе. Я знаю, как показывать/скрывать ссылки, когда соответствующая процедура встроена в процедуру установки или перехода, но мне интересно, могу ли я отключить мою процедуру видимых ссылок, чтобы называть ее всякий раз, когда я хочу, даже если кнопка go не является прессованный:как показать/скрыть ссылки в соответствии с Switch в NetLogo

to visible-links 
    ifelse show-diffusions? ;; this is my Switch element 
    [ask diffusions [set hidden? false]] 
    [ask diffusions [set hidden? true]] 
end 

Должен ли я просто добавить новую кнопку, которая будет работать вечно, и использовать ее, чтобы пользователь мог вызвать процедуру видимых ссылок? Это было бы несколько уродливо, но если это единственный способ пойти на это.

ответ

2

Добавление другой кнопки «навсегда» будет излишним. Существует еще одно решение, но оно изменяет ваш пользовательский интерфейс.

Я полагаю, что у вас есть переключатель с именем show-diffusions?, который автоматически является глобальной переменной в NetLogo. Вместо этого управления переключателем создайте глобальную переменную show-diffusions? и кнопку Show-hide-switch. Процедура Show-hide-switch может включать и выключать видимость рассеивания и отображать ссылки.

globals [ 
    show-diffusions? 
] 

to setup 
    set show-diffusions? true 
end 

to visible-links 
    ask diffusions [ set hidden? not show-diffusions? ] 
end 

; this is called by a button Show-hide-switch 
to Show-hide-switch 
    set show-diffusions? (not show-diffusions?) 
    visible-links 
    ; or call display if necessary 
end 
Смежные вопросы