Системные кнопки остаются синими после нажатия
-
- interested
- Сообщения: 6
- Зарегистрирован: 28 фев 2018, 11:37
- Версия LabVIEW: 2017
- Контактная информация:
Системные кнопки остаются синими после нажатия
Доброго времени суток! Непонятно почему в моей программе после билда как-то через раз системные кнопки остаются синими после нажатия. Вроде мелочь, но неприятно. Кто-нибудь сталкивался с таким? Как побороть?
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Системные кнопки остаются синими после нажатия
Кнопка находится в Event Structure? Какое ее механическое свойство выбрано (Switch или Latch)? Вы програмно "манипулируете" с кнопкой при помощи property node? Можете приложить код/сниппет кода с кнопкой?
Мы делили апельсин - много наших полегло...
-
- interested
- Сообщения: 6
- Зарегистрирован: 28 фев 2018, 11:37
- Версия LabVIEW: 2017
- Контактная информация:
Re: Системные кнопки остаются синими после нажатия
Kosist, да, кнопка в Event Structure, Lath when released, да, программно управляю свойством Disabled(Enabled state), изменяю его либо на Enabled либо на Disabled & grayed.
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Системные кнопки остаются синими после нажатия
Подозреваю, что в забилденной проге происходит ошибка, которая не отображается/не выскакивает, т.к. в екзе автоматическая обработка ошибок (диалоговое окно) отсутствует. И из-за ошибки, прога не переходит на евент структуру. А значит, кнопка нажата, но не обработана. Хотя без полного кода сказать трудно...
Закономерность какая-то прослеживается? Когда кнопка остается синей, само событие было обработано, или нет?
Закономерность какая-то прослеживается? Когда кнопка остается синей, само событие было обработано, или нет?
Мы делили апельсин - много наших полегло...
-
- interested
- Сообщения: 6
- Зарегистрирован: 28 фев 2018, 11:37
- Версия LabVIEW: 2017
- Контактная информация:
Re: Системные кнопки остаются синими после нажатия
Да вот в том то и дело, что все работает как должно, евент обрабатывается, закономерность пока не нашел
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Системные кнопки остаются синими после нажатия
stilfer, когда кнопка не отжалась, как положено, программа остаётся работоспособной? (Панель обновляется, реакции на UI и прочие события обрабатываются и т.п.?). В зависимости от ответа на этот вопрос можно будет сказать, корректно ли реализована работа с событиями (возможен Lock панели) или же это баг среды или может где-то ещё "собака зарыта".
Также посмотрите, не копятся ли события в очереди, с помощью Event inspector'а. Попробуйте, кроме того, изменить тип нажатия кнопки на Switch и после обработки события записывать в локалку кнопки False для её отжатия. В принципе, в качестве альтернативы можете оставить Latch и применить вот это свойство: Хотя, я вот сейчас внимательно посмотрел, у вас эвент структура размещена внутри кейс структуры. Это означает, что в некоторых случаях обработчик событий будет недоступен. Когда такое происходит, наступает Lock панели до тех пор, пока обработчик не станет доступен (если стоит галка "Lock panel ..." в настройках, то панель не блокируется, но события всё равно не будут обработаны, пока программа не зайдёт в обработчик). При блокировке панели кнопки не отжимаются, пока программа не попадёт в обработчик. Скорее всего, именно эта ситуация у вас и происходит.
Также посмотрите, не копятся ли события в очереди, с помощью Event inspector'а. Попробуйте, кроме того, изменить тип нажатия кнопки на Switch и после обработки события записывать в локалку кнопки False для её отжатия. В принципе, в качестве альтернативы можете оставить Latch и применить вот это свойство: Хотя, я вот сейчас внимательно посмотрел, у вас эвент структура размещена внутри кейс структуры. Это означает, что в некоторых случаях обработчик событий будет недоступен. Когда такое происходит, наступает Lock панели до тех пор, пока обработчик не станет доступен (если стоит галка "Lock panel ..." в настройках, то панель не блокируется, но события всё равно не будут обработаны, пока программа не зайдёт в обработчик). При блокировке панели кнопки не отжимаются, пока программа не попадёт в обработчик. Скорее всего, именно эта ситуация у вас и происходит.