Страница 1 из 1

Добавлено: 16 мар 2004, 12:14
AiK
Никак. Это событие генерится системой, и случается на каждое движение мыши.
А так - попробуй для своих целей использовать событие OnMouseDown

Добавлено: 16 мар 2004, 14:17
delphi-coder
А в обработчике OnMouseMove сделать проверку на нажатие нужной клавиши (для левого Ctrl это будет выглядеть так: If GetAsyncKeyState(VK_LCONTROL) <> 0 then), и, в случае если клавиша нажата, запускать нужный код? Или надо чтобы именно сам обработчик не срабатывал без нажатия клавиши?

Добавлено: 16 мар 2004, 22:52
Eugie
Как сделать так, чтобы событие OnMouseMove срабатывало только при нажатии клавиши (допустим при нажатой левой кнопе мышки).
Цель-то какая - чистого антересу ради али для дела? :)

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

Ну а если хоцца, чтобы OnMouseMove совсем не генерился, если к.-л. кнопка нажата, - можно и такое учудить (только ЗАЧЕМ?). Переопредели метод WMMouseMove - делов-то :)

Re: О событии OnMouseMove

Добавлено: 16 мар 2007, 01:17
sin
пасиб за ответ. а то думал как через onmouseevent какой-нить разрулить. так проще.

Re: О событии OnMouseMove

Добавлено: 26 мар 2007, 15:37
Миша123
Подскажите пожалуйста как определить событие OnMouseMove (и похожие) если их нет. Если можно кусок кода с примером. Спасибо.