Текущий архив: 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.46 MB
Время: 0.008 c