Slide's Event с цифровым дисплеем

Простейшие вопросы в области инженерной разработки
Ответить
Аватара пользователя
jane_wild
master
master
Сообщения: 461
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 84 раза
Поблагодарили: 15 раз
Контактная информация:

Slide's Event с цифровым дисплеем

Сообщение jane_wild »

Возможно уже было, но не смогла найти на форуме. Юзер использует тачскрин (не мышку). Возможно ли как то определить в каком месте на слайдере тапнул пользователь - на цифровом дисплее или пытается подвигать ползунок? Дело в том что отслеживая событие Mouse Down, вызывается NumPad, где пользователь вводит значение. Я бы хотела что бы сохранялась возможность изменить значение двигая ползунок. В приатаченном VI, Событие Mouse Down вызывается вне зависимости где тапнул пользователь, а хотелось бы чтобы оно вызывалось только по клику на цифровом дисплее.

P.S. Можно конечно дополнительно разметсить Numeric Control и отслеживать событие там и по value change изменять значение на слайдере. Но хотелось бы обойтись только слайдером. Спасибо
Вложения
Untitled 1.vi
(7.37 КБ) 33 скачивания
Аватара пользователя
Kosist

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

Re: Slide's Event с цифровым дисплеем

Сообщение Kosist »

Зарегистрируйте событие по ссылке на Digital Display.
Digital display.png
Мы делили апельсин - много наших полегло...
Аватара пользователя
jane_wild
master
master
Сообщения: 461
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 84 раза
Поблагодарили: 15 раз
Контактная информация:

Re: Slide's Event с цифровым дисплеем

Сообщение jane_wild »

Спасибо, то что нужно!

UPD. Обнаружилась одна неприятная особенность, чтобы зарегистрировать событие Mouse Down фронтальная панель обязательно должна быть отркрыта. :cry:
Аватара пользователя
Kosist

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

Re: Slide's Event с цифровым дисплеем

Сообщение Kosist »

jane_wild писал(а): 26 май 2022, 13:44 UPD. Обнаружилась одна неприятная особенность, чтобы зарегистрировать событие Mouse Down фронтальная панель обязательно должна быть отркрыта. :cry:
А как Вы хотите ее использовать?
Мы делили апельсин - много наших полегло...
Аватара пользователя
jane_wild
master
master
Сообщения: 461
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 84 раза
Поблагодарили: 15 раз
Контактная информация:

Re: Slide's Event с цифровым дисплеем

Сообщение jane_wild »

Kosist писал(а): 26 май 2022, 22:51 А как Вы хотите ее использовать?

Просто последовательность запуска такая, первоначально инициализируется все железо, а затем показывается главное окно. Теперь же пришлось показать его сразу, иначе выскакивает ошибка.

Понимаю что это другая тема и это врядли связано с предложеной модификацией, но отношение к этому имеет. Суть вот в чем: Пользователь тапнул по цифровому дисплею - вызвался нумпад (в него передался reference контрола, по которому тапнули) - он ввел значение и кликнул Ок. В этот момент NumPad.vi используя переданный reference при запуске, записывает в его property node Value(Signaling) введенное значение.
Ну и вот, в главном окне, генерируется событие value change меняется значение на цифровом дисплее, а ползунок слайдера остается на месте! Долго не могла понять в чем дело, пока случайно не подвигала открытое окно панели. Т.е. за заголовок окна я передвигаю это окно чтобы слайдер вышел за пределы монитора, затем возвращаю обратно и ползунок становится в правильную позицию. Типа графика не перерысовывается. Как с этим бороться и как заставить Windows обновить окошко? Спасибо
Artem.spb

Activity Автор
professor
professor
Сообщения: 3407
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 176 раз
Контактная информация:

Re: Slide's Event с цифровым дисплеем

Сообщение Artem.spb »

Kosist писал(а): 26 май 2022, 22:51
jane_wild писал(а): 26 май 2022, 13:44 UPD. Обнаружилась одна неприятная особенность, чтобы зарегистрировать событие Mouse Down фронтальная панель обязательно должна быть отркрыта. :cry:
А как Вы хотите ее использовать?
Ну вопрос вполне обоснован, я сам с таким сталкивался: есть ряд модальных или плавающих окон, которые открываются не сразу.
Вариант решения - отложенная регистрация, но надо заморочиться с отловом момента открытия окна
ue.png
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 88 раз

Re: Slide's Event с цифровым дисплеем

Сообщение IvanLis »

jane_wild писал(а): 27 май 2022, 15:01Как с этим бороться и как заставить Windows обновить окошко?
Попробуйте перед обновлением значения по ссылке заблокировать перерисовку передней панели (DeferPanelUpdates), а после обновления разблокировать.
Аватара пользователя
dadreamer

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

Re: Slide's Event с цифровым дисплеем

Сообщение dadreamer »

jane_wild, можете также попробовать
Вложения
Untitled 1.vi
lv2019
(7.23 КБ) 33 скачивания
Аватара пользователя
Kosist

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

Re: Slide's Event с цифровым дисплеем

Сообщение Kosist »

Странно, я набросал такой пример, все работает. Хотя спорить не буду, подобную проблему я видел с TestStand контролами.
Вложения
Launch.vi
(7.82 КБ) 32 скачивания
Untitled 1.vi
(12.45 КБ) 29 скачиваний
Мы делили апельсин - много наших полегло...
Аватара пользователя
taras_33

Activity
professional
professional
Сообщения: 392
Зарегистрирован: 31 окт 2009, 18:25
Награды: 1
Версия LabVIEW: 2019
Поблагодарили: 13 раз
Контактная информация:

Re: Slide's Event с цифровым дисплеем

Сообщение taras_33 »

Если ссылка берется в event structure прямо из кейса mouse down, то эта ссылка на его дисплей, а не на сам слайдер. Если это так, то попробуйте ПКМ на слайдере -> create reference и использовать эту ссылку.
Хотя по идее движок слайдера должен обновляться и через дисплей....
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
Аватара пользователя
jane_wild
master
master
Сообщения: 461
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 84 раза
Поблагодарили: 15 раз
Контактная информация:

Re: Slide's Event с цифровым дисплеем

Сообщение jane_wild »

"Взяла работу на дом" и во время больших выходных создала тестовый проект (см вложение), чтобы проверить все выше изложенные рекомендации.
Всё из предложенного работает. Использовать DeferPanelUpdates не совсем удобно поскольку во время набора блокируется обновление всей панели и создается впечатление что программа зависла. Для испльзования Panel Ivalidate нужен property node, впрочем как и для DeferPanelUpdates. Поэтому на мой взгляд применение reference слайдера является самым удобным.
Отдельное спасибо Артему за "отложенную регистрацию". Теперь все работает как и планировалось.

Всем большое спасибо!
Вложения
Test.zip
(251.45 КБ) 27 скачиваний
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»