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

Вниз

Можно ли передвинуть курсор так...   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.013 c
6-52316
ZA
2003-10-17 09:02
2003.12.16
Вывод HTML + обработка событий


1-52153
Stalker780
2003-12-03 16:45
2003.12.16
Вывести форму в таскбар


1-52266
lipskiy
2003-11-29 14:52
2003.12.16
Запуск html странички с указанием внутренней ссылки?


1-52162
Коля
2003-12-03 16:04
2003.12.16
TImageList -> TSpeedButton


1-52283
rosl
2003-12-04 09:36
2003.12.16
удалить первые два символа в edit