Никак. Это событие генерится системой, и случается на каждое движение мыши.
А так - попробуй для своих целей использовать событие OnMouseDown
О событии OnMouseMove
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Даже самый дурацкий замысел можно воплотить мастерски
-
- Сообщения: 12
- Зарегистрирован: 04 мар 2004, 15:35
- Откуда: Moscow, Russia
А в обработчике OnMouseMove сделать проверку на нажатие нужной клавиши (для левого Ctrl это будет выглядеть так: If GetAsyncKeyState(VK_LCONTROL) <> 0 then), и, в случае если клавиша нажата, запускать нужный код? Или надо чтобы именно сам обработчик не срабатывал без нажатия клавиши?
Цель-то какая - чистого антересу ради али для дела?Как сделать так, чтобы событие OnMouseMove срабатывало только при нажатии клавиши (допустим при нажатой левой кнопе мышки).

Вообще-то, в OnMouseMove засылается среди прочих параметр Shift типа TShiftState, который как раз показывает состояние клавиш Alt, Shift, Ctrl и кнопок мыши в момент генерации события. Например, для левой кнопки мыши: если (ssLeft in Shift) = True - нажата, False - отпущена.
Ну а если хоцца, чтобы OnMouseMove совсем не генерился, если к.-л. кнопка нажата, - можно и такое учудить (только ЗАЧЕМ?). Переопредели метод WMMouseMove - делов-то

пасиб за ответ. а то думал как через onmouseevent какой-нить разрулить. так проще.
Подскажите пожалуйста как определить событие OnMouseMove (и похожие) если их нет. Если можно кусок кода с примером. Спасибо.