Форум: "Потрепаться";
Текущий архив: 2003.12.16;
Скачать: [xml.tar.bz2];
ВнизМожно ли передвинуть курсор так... Найти похожие ветки
← →
Knight (2003-11-21 01:12) [0]..., чтобы не свершиловь событие MouseMove?
← →
Knight (2003-11-21 10:06) [1]Приложение реагирует на SetCursorPos()... кто знает ещё функции для работы с сабжем?
← →
Knight (2003-11-21 10:44) [2]Неужели система не может определить где программный сдвиг, а где реальное движение мыши?
← →
NeyroSpace (2003-11-21 11:21) [3]А разве приложение мышь ловит? Оно вроде сообщения ловит. Хотя наверное можно к драйверу обращатся...
← →
REA (2003-11-21 11:23) [4]:) WM_MouseJump
← →
Игорь Шевченко (2003-11-21 11:25) [5]Непонятная задача. Зачем ?
← →
PVOzerski (2003-11-21 11:34) [6]Если речь идет о событиях в смысле VCL, а не о сообщенияхв смысле Windows, самое простое - временно переназначить обработчик onMouseMove.
← →
Knight (2003-11-21 12:38) [7]В общем, в проге обрабатывается onMouseMove (пробовал WM_MOUSEMOVE, эффект тот же) там берутся координаты мыши и обрабатываются. В этой же проге по таймеру происходит позиционирование курсора в зависимомти от полученных в муве координат. Короче, при позиционировании, вызывается onMouseMove и получается, что мыш не позиционируется, а ползёт самопёхом, пока не выйдет за пределы формы... это конечно прикольно, но задумака несколько иная... :)
Надо, чтобы прога реагировалиа на реальное движение мыши, а не на программное позиционирование курсора, но для тех событий которые я знаю, это одно и тоже. Причём описанные выше вещи должны работать совместно, т.е. переназначение onMouseMove не подходит. Может кто знает, событие которое происходит только при движении самой мыши?
← →
REA (2003-11-21 12:48) [8]>по таймеру происходит позиционирование курсора
как вариант - запоминать куда позиционировал - если не туда, значит оно само.
← →
PVOzerski (2003-11-21 12:57) [9]Я же говорил, теперь конкретизирую:
во обработчике onTimer делаем:
OldOnMouseMove:=onMouseMove;
onMouseMove:=nil;
...(делаем позиционирование курсора)...
onMouseMove:=OldOnMouseMove;
← →
Knight (2003-11-21 14:49) [10]>> PVOzerski © (21.11.03 12:57) [9]
Не то это...
Вот событие onKeyPress передаёт в параметрах, то какая клавиша нажата, ДО того как она будет обработана и если она не удовлетворяет условиям, то можно её обнулить как будь-то её и небыло... у формы есть onCanResize, который даёт возможность узнать новые размеры окна, ДО того как окно измениться с возможностью запрета... так почему-же для мыши нет возможности узнать куда она будет передвинута и отменить перемещение если что-то не так? Или есть, но я его не нашёл?
← →
PVOzerski (2003-11-21 15:00) [11]А если GetCursorPos употребить внутри таймерного обработчика?
← →
Knight (2003-11-21 15:05) [12]А как клип работает? Он ведь от куда-то знает, что курсор при следующем перемещении выйдет за пределы области... и не пускает.
← →
NeyroSpace (2003-11-21 15:11) [13]Если для своего в WindowProc лови сообщения мыши.
Если для всех приложений хук поставь на сообщения мыши.
← →
Knight (2003-11-21 17:11) [14]Ни одна не останавливает курсор в приложении, т.е. получается, что все они сперва обрабатываются системой, перемещающей курсор, а после система ставит об этом в известность все остальные приложения... :(
← →
Knight (2003-11-21 17:14) [15]Нашёл тут два хука WH_MOUSE_LL и WH_HARDWARE, первого нет ни в модуле, ни в хэлпе, второй есть в модуле, но описания в хэлпе нет... Может кто слыхал о таких?
← →
han_malign (2003-11-21 17:28) [16]Всегда обходились без всяких хуков:
if((OldPoint.X<>X)or(OldPoint.Y<>Y))then begin
if(x...)then x:=...;
if(y...)then y:=...;
OldPoint:=Point(x,y);
SetCursorPos(x,y);
end;
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.12.16;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c