| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Мышкино колёсико |
| Автор: EKoshelev 13.10.2004, 15:59 |
| У меня Delphi 5 Хотелось бы знать как отловить вращение колёсика мышки. По факьюшкам, помнится, рылся, дак там только его наличие можно было выявить. А ещё я тут глумлюсь над StringGrid'ом и мне не нужно чтобы маркер ползал от колеса. Может быть его и перехватить можно как-нибудь? Всем заранее спасибо. |
| Автор: Akella 13.10.2004, 16:44 |
| здается мне, что нужно добавлять событие к компоненте TStringGrid OnMouseWheel, такое как в DBGrid`е |
| Автор: Snowy 13.10.2004, 16:47 |
| Какие ужасные проблеммы... В Delphi 7 есть стандастные события: OnMouseWheel, OnMouseWheelUp, OnMouseWheelDown. Если конечно хочется помучиться, то придется отслеживать сообщения форме. Ждать сообщения WM_MOUSEWHEEL. Оно тебе заодно и скажет, куда крутить: вверх или вниз. Только оно работает не во всех версиях Win. В >=2k работает точно. Про остальные не скажу. |
| Автор: Akella 13.10.2004, 16:49 | ||
в TStingGrid нету |
| Автор: bartram 13.10.2004, 16:51 |
| Snowy, зарегистрируйся раз такие полезные сообщения даёшь! |
| Автор: Snowy 13.10.2004, 17:06 |
| Точно, поправочка. У StringGreed нет OnMouseWheel. Есть только OnMouseWheelUp, OnMouseWheelDown. Хотя это не многое меняет. Однако было бы полезно ловить именно сообщения формы, а не грида, т.к. грид и сам по колесу двигает ползунок, а вот, если фокус не на гриде, то в данном случае скролить область грида, а не позицию. Хотя можно совместить полезное с приятным и просто посадить на форму TApplicationEvents. А у него уже следить, что: if Msg.Message=WM_MOUSEWHEEL then if Msg.lParam<0 then вверх else вниз; В данном случае будет работать везде. |
| Автор: z-END 8.2.2005, 19:26 | ||
Это точно рабочий пример?! нет, я не-то чтобы не верю Snowy, просто щас на компе проверял, там lParam меняется только если координаты гызуна сдвинулсь, а реально данные находятся в wParam с точночтью до наоборот т.е. <0 значит вниз >0 наверх. Может быть у меня с компом че-то? т.к. уже столкнулся с тем что он как-то неесовсем правильно работает. http://forum.vingrad.ru/index.php?showtopic=39646 |
| Автор: Snowy 9.2.2005, 09:17 | ||
| Конечно нет. Что-то я ляпнул на скорую руку не подумавши. Рабочий код такой:
|
| Автор: BukaKoka 24.10.2009, 13:23 |
| Отловить та отловили всё хорошо. Но мне надо програмно покрутить им как это сделать. Какие функции здесь нужны? Спасибо. |