Страница 1 из 1

Системные кнопки остаются синими после нажатия

Добавлено: 01 июн 2018, 12:32
stilfer
Доброго времени суток! Непонятно почему в моей программе после билда как-то через раз системные кнопки остаются синими после нажатия. Вроде мелочь, но неприятно. Кто-нибудь сталкивался с таким? Как побороть?

Re: Системные кнопки остаются синими после нажатия

Добавлено: 01 июн 2018, 14:22
Kosist
Кнопка находится в Event Structure? Какое ее механическое свойство выбрано (Switch или Latch)? Вы програмно "манипулируете" с кнопкой при помощи property node? Можете приложить код/сниппет кода с кнопкой?

Re: Системные кнопки остаются синими после нажатия

Добавлено: 01 июн 2018, 15:04
stilfer
Kosist, да, кнопка в Event Structure, Lath when released, да, программно управляю свойством Disabled(Enabled state), изменяю его либо на Enabled либо на Disabled & grayed.


Изображение

Re: Системные кнопки остаются синими после нажатия

Добавлено: 01 июн 2018, 17:15
Kosist
Подозреваю, что в забилденной проге происходит ошибка, которая не отображается/не выскакивает, т.к. в екзе автоматическая обработка ошибок (диалоговое окно) отсутствует. И из-за ошибки, прога не переходит на евент структуру. А значит, кнопка нажата, но не обработана. Хотя без полного кода сказать трудно...
Закономерность какая-то прослеживается? Когда кнопка остается синей, само событие было обработано, или нет?

Re: Системные кнопки остаются синими после нажатия

Добавлено: 18 июн 2018, 15:03
stilfer
Да вот в том то и дело, что все работает как должно, евент обрабатывается, закономерность пока не нашел

Re: Системные кнопки остаются синими после нажатия

Добавлено: 18 июн 2018, 15:47
dadreamer
stilfer, когда кнопка не отжалась, как положено, программа остаётся работоспособной? (Панель обновляется, реакции на UI и прочие события обрабатываются и т.п.?). В зависимости от ответа на этот вопрос можно будет сказать, корректно ли реализована работа с событиями (возможен Lock панели) или же это баг среды или может где-то ещё "собака зарыта".

Также посмотрите, не копятся ли события в очереди, с помощью Event inspector'а. Попробуйте, кроме того, изменить тип нажатия кнопки на Switch и после обработки события записывать в локалку кнопки False для её отжатия. В принципе, в качестве альтернативы можете оставить Latch и применить вот это свойство:
LatchValue.png
LatchValue.png (9.82 КБ) 3519 просмотров
Untitled 1.vi
lv2017
(4.4 КБ) 167 скачиваний
Хотя, я вот сейчас внимательно посмотрел, у вас эвент структура размещена внутри кейс структуры. Это означает, что в некоторых случаях обработчик событий будет недоступен. Когда такое происходит, наступает Lock панели до тех пор, пока обработчик не станет доступен (если стоит галка "Lock panel ..." в настройках, то панель не блокируется, но события всё равно не будут обработаны, пока программа не зайдёт в обработчик). При блокировке панели кнопки не отжимаются, пока программа не попадёт в обработчик. Скорее всего, именно эта ситуация у вас и происходит.