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

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

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

Postby Dominoxa on 27 Aug 2016, 20:00

Добрый день!
Когда-то нашел на нашем форуме пример в котором индикаторы на графике бегали за курсором. Для этой цели использовались события Cursor Grab, Mouse Move, Mouse Up.
Все работает почти как надо, но при выходе мышки за пределы графика происходят странные вещи - область TabControl, в которой расположен график, расширяется! Кроме того индикатор "прилипает" к мыши и не отпускается при отпускании ЛКП.
Attachments
Cursor1.png
Cursor2.png
Cursor3.png
ScreenShot002.png
Индикатор бегает за курсором
ScreenShot003.png
Область TabControl саморасширяется
Cursor move.vi
(30.05 KiB) Downloaded 64 times
Dominoxa
beginner
beginner
 
Posts: 18
Joined: 28 Feb 2015, 11:12
Location: Москва
LabVIEW Version: 13
Karma: 0
I/O

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

Postby Artem.spb on 27 Aug 2016, 22:52

Не вникая сильно в код:
"летающие" индикаторы - это свободные индикаторы, расположенные в Tab-е, элементы которого не могут вылезать за границы (не могут быть скрыты), т.к. Tab не имеет скрол-баров, размер Tab-а автоматом будет расширяться, чтобы всё было видно.
Если хочется оставить всё как есть, то можно индикатор вынести за пределы Tab-а, тогда он может летать где угодно, в том числе над Tab-ом. В режиме редактирования будет некрасивая тень, но в запущенном состоянии всё будет нормально.
Чуть сложнее и правильнее добавить событие MouseLeave, эквивалентное Mouse Up
Artem.spb
expert
expert
 
Posts: 1295
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 224
CLD hardware I/O VIP freelance

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

Postby Kosist on 27 Aug 2016, 23:55

У Вас курсор двигается, даже когда мышь находиться за пределами графика. Можно ограничить эту область, и тогда индикатор не будет вылезать за пределы таб-контрола (на 100% не уверен, поможет ли, но попробуйте...).
Move Cursor.png
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 817
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 238
CLAD I/O VIP students

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

Postby dadreamer on 28 Aug 2016, 00:48

Я, может, что-то недопонял... Но зачем здесь динамическая регистрация событий? Без этого работает же.
User avatar
dadreamer
professor
professor
 
Posts: 3043
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 750
I/O VIP vision internet

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

Postby Blackman on 28 Aug 2016, 11:01

Если в качестве индикатора позиции курсора использовать его имя (свойство Name), все будет значительно проще.
При этом этот "индикатор" еще можно перемещать при помощи "мышки".
Attachments
Cursor Position Presentation.PNG
Cursor Position Presentation.vi
(28.57 KiB) Downloaded 70 times
Blackman
leader
leader
 
Posts: 716
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 187

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

Postby Dominoxa on 28 Aug 2016, 13:19

Спасибо ! Все попробовал.
Вариант с перемещением Cursor Name, наверное, оптимальный: меньше элементов, меньше кода, точно не нужен Dynamic Event + можно перемещать цифры. Tab тоже не саморасширяется.
Но есть интересный эффект - след от цифр. При отпускании не исчезает:
Attachments
ScreenShot001.png
ScreenShot001.png (9.48 KiB) Viewed 2134 times
Dominoxa
beginner
beginner
 
Posts: 18
Joined: 28 Feb 2015, 11:12
Location: Москва
LabVIEW Version: 13
Karma: 0
I/O


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

Who is online

Users browsing this forum: No registered users and 3 guests

cron