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

Обсуждение, связанное с разработкой ПО верхнего уровня
Ответить
stilfer
interested
interested
Сообщения: 6
Зарегистрирован: 28 фев 2018, 11:37
Версия LabVIEW: 2017
Контактная информация:

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

Сообщение stilfer »

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

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

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

Сообщение Kosist »

Кнопка находится в Event Structure? Какое ее механическое свойство выбрано (Switch или Latch)? Вы програмно "манипулируете" с кнопкой при помощи property node? Можете приложить код/сниппет кода с кнопкой?
Мы делили апельсин - много наших полегло...
stilfer
interested
interested
Сообщения: 6
Зарегистрирован: 28 фев 2018, 11:37
Версия LabVIEW: 2017
Контактная информация:

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

Сообщение stilfer »

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


Изображение
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

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

Сообщение Kosist »

Подозреваю, что в забилденной проге происходит ошибка, которая не отображается/не выскакивает, т.к. в екзе автоматическая обработка ошибок (диалоговое окно) отсутствует. И из-за ошибки, прога не переходит на евент структуру. А значит, кнопка нажата, но не обработана. Хотя без полного кода сказать трудно...
Закономерность какая-то прослеживается? Когда кнопка остается синей, само событие было обработано, или нет?
Мы делили апельсин - много наших полегло...
stilfer
interested
interested
Сообщения: 6
Зарегистрирован: 28 фев 2018, 11:37
Версия LabVIEW: 2017
Контактная информация:

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

Сообщение stilfer »

Да вот в том то и дело, что все работает как должно, евент обрабатывается, закономерность пока не нашел
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

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

Сообщение dadreamer »

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

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

Вернуться в «Лицевая панель»