Индикатор бегает за курсором

Обсуждение, связанное с разработкой ПО верхнего уровня
Ответить
Dominoxa
beginner
beginner
Сообщения: 18
Зарегистрирован: 28 фев 2015, 11:12
Версия LabVIEW: 13
Откуда: Москва
Контактная информация:

Индикатор бегает за курсором

Сообщение Dominoxa »

Добрый день!
Когда-то нашел на нашем форуме пример в котором индикаторы на графике бегали за курсором. Для этой цели использовались события Cursor Grab, Mouse Move, Mouse Up.
Все работает почти как надо, но при выходе мышки за пределы графика происходят странные вещи - область TabControl, в которой расположен график, расширяется! Кроме того индикатор "прилипает" к мыши и не отпускается при отпускании ЛКП.
Вложения
Cursor1.png
Cursor2.png
Cursor3.png
Индикатор бегает за курсором
Индикатор бегает за курсором
Область TabControl саморасширяется
Область TabControl саморасширяется
Cursor move.vi
(30.05 КБ) 167 скачиваний
Artem.spb

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

Re: Индикатор бегает за курсором

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

Не вникая сильно в код:
"летающие" индикаторы - это свободные индикаторы, расположенные в Tab-е, элементы которого не могут вылезать за границы (не могут быть скрыты), т.к. Tab не имеет скрол-баров, размер Tab-а автоматом будет расширяться, чтобы всё было видно.
Если хочется оставить всё как есть, то можно индикатор вынести за пределы Tab-а, тогда он может летать где угодно, в том числе над Tab-ом. В режиме редактирования будет некрасивая тень, но в запущенном состоянии всё будет нормально.
Чуть сложнее и правильнее добавить событие MouseLeave, эквивалентное Mouse Up
Аватара пользователя
Kosist

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

Re: Индикатор бегает за курсором

Сообщение Kosist »

У Вас курсор двигается, даже когда мышь находиться за пределами графика. Можно ограничить эту область, и тогда индикатор не будет вылезать за пределы таб-контрола (на 100% не уверен, поможет ли, но попробуйте...).
Move Cursor.png
Мы делили апельсин - много наших полегло...
Аватара пользователя
dadreamer

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

Re: Индикатор бегает за курсором

Сообщение dadreamer »

Я, может, что-то недопонял... Но зачем здесь динамическая регистрация событий? Без этого работает же.
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Индикатор бегает за курсором

Сообщение Blackman »

Если в качестве индикатора позиции курсора использовать его имя (свойство Name), все будет значительно проще.
При этом этот "индикатор" еще можно перемещать при помощи "мышки".
Вложения
Cursor Position Presentation.PNG
Cursor Position Presentation.vi
(28.57 КБ) 167 скачиваний
Dominoxa
beginner
beginner
Сообщения: 18
Зарегистрирован: 28 фев 2015, 11:12
Версия LabVIEW: 13
Откуда: Москва
Контактная информация:

Re: Индикатор бегает за курсором

Сообщение Dominoxa »

Спасибо ! Все попробовал.
Вариант с перемещением Cursor Name, наверное, оптимальный: меньше элементов, меньше кода, точно не нужен Dynamic Event + можно перемещать цифры. Tab тоже не саморасширяется.
Но есть интересный эффект - след от цифр. При отпускании не исчезает:
Вложения
ScreenShot001.png
ScreenShot001.png (9.48 КБ) 4525 просмотров
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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