Страница 1 из 1

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

Добавлено: 27 авг 2016, 20:00
Dominoxa
Добрый день!
Когда-то нашел на нашем форуме пример в котором индикаторы на графике бегали за курсором. Для этой цели использовались события Cursor Grab, Mouse Move, Mouse Up.
Все работает почти как надо, но при выходе мышки за пределы графика происходят странные вещи - область TabControl, в которой расположен график, расширяется! Кроме того индикатор "прилипает" к мыши и не отпускается при отпускании ЛКП.

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

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

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

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

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

Добавлено: 28 авг 2016, 00:48
dadreamer
Я, может, что-то недопонял... Но зачем здесь динамическая регистрация событий? Без этого работает же.

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

Добавлено: 28 авг 2016, 11:01
Blackman
Если в качестве индикатора позиции курсора использовать его имя (свойство Name), все будет значительно проще.
При этом этот "индикатор" еще можно перемещать при помощи "мышки".

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

Добавлено: 28 авг 2016, 13:19
Dominoxa
Спасибо ! Все попробовал.
Вариант с перемещением Cursor Name, наверное, оптимальный: меньше элементов, меньше кода, точно не нужен Dynamic Event + можно перемещать цифры. Tab тоже не саморасширяется.
Но есть интересный эффект - след от цифр. При отпускании не исчезает: