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

Обсуждение, связанное с разработкой ПО верхнего уровня

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

Postby stilfer on 01 Jun 2018, 12:32

Доброго времени суток! Непонятно почему в моей программе после билда как-то через раз системные кнопки остаются синими после нажатия. Вроде мелочь, но неприятно. Кто-нибудь сталкивался с таким? Как побороть?
stilfer
interested
interested
 
Posts: 6
Joined: 28 Feb 2018, 11:37
LabVIEW Version: 2017
Karma: 0

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

Postby Kosist on 01 Jun 2018, 14:22

Кнопка находится в Event Structure? Какое ее механическое свойство выбрано (Switch или Latch)? Вы програмно "манипулируете" с кнопкой при помощи property node? Можете приложить код/сниппет кода с кнопкой?
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 885
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 251
CLAD I/O VIP students

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

Postby stilfer on 01 Jun 2018, 15:04

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


Image
stilfer
interested
interested
 
Posts: 6
Joined: 28 Feb 2018, 11:37
LabVIEW Version: 2017
Karma: 0

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

Postby Kosist on 01 Jun 2018, 17:15

Подозреваю, что в забилденной проге происходит ошибка, которая не отображается/не выскакивает, т.к. в екзе автоматическая обработка ошибок (диалоговое окно) отсутствует. И из-за ошибки, прога не переходит на евент структуру. А значит, кнопка нажата, но не обработана. Хотя без полного кода сказать трудно...
Закономерность какая-то прослеживается? Когда кнопка остается синей, само событие было обработано, или нет?
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 885
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 251
CLAD I/O VIP students

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

Postby stilfer on 18 Jun 2018, 15:03

Да вот в том то и дело, что все работает как должно, евент обрабатывается, закономерность пока не нашел
stilfer
interested
interested
 
Posts: 6
Joined: 28 Feb 2018, 11:37
LabVIEW Version: 2017
Karma: 0

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

Postby dadreamer on 18 Jun 2018, 15:47

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

Также посмотрите, не копятся ли события в очереди, с помощью Event inspector'а. Попробуйте, кроме того, изменить тип нажатия кнопки на Switch и после обработки события записывать в локалку кнопки False для её отжатия. В принципе, в качестве альтернативы можете оставить Latch и применить вот это свойство:
LatchValue.png
LatchValue.png (9.82 KiB) Viewed 713 times
Untitled 1.vi
lv2017
(4.4 KiB) Downloaded 25 times

Хотя, я вот сейчас внимательно посмотрел, у вас эвент структура размещена внутри кейс структуры. Это означает, что в некоторых случаях обработчик событий будет недоступен. Когда такое происходит, наступает Lock панели до тех пор, пока обработчик не станет доступен (если стоит галка "Lock panel ..." в настройках, то панель не блокируется, но события всё равно не будут обработаны, пока программа не зайдёт в обработчик). При блокировке панели кнопки не отжимаются, пока программа не попадёт в обработчик. Скорее всего, именно эта ситуация у вас и происходит.
User avatar
dadreamer
professor
professor
 
Posts: 3134
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 790
I/O VIP vision internet


Return to Лицевая панель

Who is online

Users browsing this forum: No registered users and 4 guests

cron