О событии OnMouseMove

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

Никак. Это событие генерится системой, и случается на каждое движение мыши.
А так - попробуй для своих целей использовать событие OnMouseDown
Даже самый дурацкий замысел можно воплотить мастерски
delphi-coder
Сообщения: 12
Зарегистрирован: 04 мар 2004, 15:35
Откуда: Moscow, Russia

А в обработчике OnMouseMove сделать проверку на нажатие нужной клавиши (для левого Ctrl это будет выглядеть так: If GetAsyncKeyState(VK_LCONTROL) <> 0 then), и, в случае если клавиша нажата, запускать нужный код? Или надо чтобы именно сам обработчик не срабатывал без нажатия клавиши?
Eugie
Сообщения: 708
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

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

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

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

пасиб за ответ. а то думал как через onmouseevent какой-нить разрулить. так проще.
Миша123
Сообщения: 1
Зарегистрирован: 26 мар 2007, 15:32

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