Добрый день!
Когда-то нашел на нашем форуме пример в котором индикаторы на графике бегали за курсором. Для этой цели использовались события Cursor Grab, Mouse Move, Mouse Up.
Все работает почти как надо, но при выходе мышки за пределы графика происходят странные вещи - область TabControl, в которой расположен график, расширяется! Кроме того индикатор "прилипает" к мыши и не отпускается при отпускании ЛКП.
Индикатор бегает за курсором
-
- beginner
- Сообщения: 18
- Зарегистрирован: 28 фев 2015, 11:12
- Версия LabVIEW: 13
- Откуда: Москва
- Контактная информация:
-
- professor
- Сообщения: 3410
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Индикатор бегает за курсором
Не вникая сильно в код:
"летающие" индикаторы - это свободные индикаторы, расположенные в Tab-е, элементы которого не могут вылезать за границы (не могут быть скрыты), т.к. Tab не имеет скрол-баров, размер Tab-а автоматом будет расширяться, чтобы всё было видно.
Если хочется оставить всё как есть, то можно индикатор вынести за пределы Tab-а, тогда он может летать где угодно, в том числе над Tab-ом. В режиме редактирования будет некрасивая тень, но в запущенном состоянии всё будет нормально.
Чуть сложнее и правильнее добавить событие MouseLeave, эквивалентное Mouse Up
"летающие" индикаторы - это свободные индикаторы, расположенные в Tab-е, элементы которого не могут вылезать за границы (не могут быть скрыты), т.к. Tab не имеет скрол-баров, размер Tab-а автоматом будет расширяться, чтобы всё было видно.
Если хочется оставить всё как есть, то можно индикатор вынести за пределы Tab-а, тогда он может летать где угодно, в том числе над Tab-ом. В режиме редактирования будет некрасивая тень, но в запущенном состоянии всё будет нормально.
Чуть сложнее и правильнее добавить событие MouseLeave, эквивалентное Mouse Up
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Индикатор бегает за курсором
У Вас курсор двигается, даже когда мышь находиться за пределами графика. Можно ограничить эту область, и тогда индикатор не будет вылезать за пределы таб-контрола (на 100% не уверен, поможет ли, но попробуйте...).
Мы делили апельсин - много наших полегло...
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Индикатор бегает за курсором
Я, может, что-то недопонял... Но зачем здесь динамическая регистрация событий? Без этого работает же.
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Индикатор бегает за курсором
Если в качестве индикатора позиции курсора использовать его имя (свойство Name), все будет значительно проще.
При этом этот "индикатор" еще можно перемещать при помощи "мышки".
При этом этот "индикатор" еще можно перемещать при помощи "мышки".
- Вложения
-
- Cursor Position Presentation.vi
- (28.57 КБ) 174 скачивания
-
- beginner
- Сообщения: 18
- Зарегистрирован: 28 фев 2015, 11:12
- Версия LabVIEW: 13
- Откуда: Москва
- Контактная информация:
Re: Индикатор бегает за курсором
Спасибо ! Все попробовал.
Вариант с перемещением Cursor Name, наверное, оптимальный: меньше элементов, меньше кода, точно не нужен Dynamic Event + можно перемещать цифры. Tab тоже не саморасширяется.
Но есть интересный эффект - след от цифр. При отпускании не исчезает:
Вариант с перемещением Cursor Name, наверное, оптимальный: меньше элементов, меньше кода, точно не нужен Dynamic Event + можно перемещать цифры. Tab тоже не саморасширяется.
Но есть интересный эффект - след от цифр. При отпускании не исчезает:
- Вложения
-
- ScreenShot001.png (9.48 КБ) 4684 просмотра
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 2 Ответы
- 330 Просмотры
-
Последнее сообщение Maverick_Tomcat