Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.16;
Скачать: CL | DM;

Вниз

Шаг мышки   Найти похожие ветки 

 
Laymer   (2006-05-31 13:04) [0]

Доброе время суток!!!
у меня есть объект Image. Как задать шаг мышки, чтоб она двигалась через каждые 20 пикселей????
Заранее благодарен!!!


 
Kolan ©   (2006-05-31 13:17) [1]

В MouseMove умножай X И Y на 20 и делай SetCursorPos


 
Eraser ©   (2006-05-31 13:21) [2]


> Kolan ©   (31.05.06 13:17) [1]

может лучше прибавлять :)


 
Laymer   (2006-05-31 13:37) [3]

Это все глобальные координаты мыши.
А есть ли возможность изменение только в пределе этого объекта???
Вот что я зделал

   ...
   var p: TPoint;
   ...
   p.X := Self.Left + PoleUser.Left + x  + 20;
   p.Y := Self.Top + PoleUser.top + y + 20;
   Mouse.CursorPos := p;


Работает не правельно, мышь не туда куда надо. Что еще надо учесть???


 
antonn ©   (2006-05-31 13:39) [4]

нужно div"ить

x:=(x div 20)*20; //примерно так:)

и не саму мышку, а курсор.


 
Eraser ©   (2006-05-31 13:41) [5]


> Laymer   (31.05.06 13:37) [3]

см. ф-ю перевода клиентских координат в экранные ClientToScreen.


 
_RusLAN ©   (2006-05-31 15:29) [6]

Laymer   (31.05.06 13:37) [3]
И почему не учитывается в какую сторону пользователь двинул мышку?

p.X := Self.Left + PoleUser.Left + x  + 20;

Он что только влево двигает?. а если в право - тогда ж надо отнимать 20.


 
StriderMan ©   (2006-05-31 15:42) [7]

1. Нужно учитывать начальные координаты мыши
2. Умножать нельзя, а то очень быстро будет бегать мышь.

Долго я с подобной задачей возился (делал визуальный редактор), там основная проблема была при перетаскивании нескольких объектов.

вобщем задачу решил, хотя на пальцах объяснить не смогу. Основная идея в хранении относительного смещения мыши, и когда оно достигает определенного значения - двигать реальный указатель.

задача по началу кажется тривиальной, но это не так.


 
zorik ©   (2006-06-01 10:06) [8]

Можна сам курсор мыши сделать невидимым, а рисовать свой курсор. Разбить область сеткой. И отрисовывать свой курсор в том узле, ближе к которому координаты мыши


 
RameS   (2006-06-01 10:39) [9]

согласен с zorik, если есть возможность, можно отключить стандартный курсор и выводить свой с нужным шагом (например, так div 20 * 20)
:)



Страницы: 1 вся ветка

Текущий архив: 2006.07.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.045 c
15-1149789877
kaif
2006-06-08 22:04
2006.07.16
ODBC драйвер для FoxPro2.6


15-1150688558
Kerk
2006-06-19 07:42
2006.07.16
Что такое FireBird


2-1151652451
newbie2
2006-06-30 11:27
2006.07.16
Как добавить bpl в dpr?


2-1151517037
Зм1й
2006-06-28 21:50
2006.07.16
Скопировать число в буфер обмена


2-1151587495
Kill
2006-06-29 17:24
2006.07.16
Направление в котором нужно работать