![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| EKoshelev |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 509 Регистрация: 1.9.2004 Репутация: нет Всего: нет |
У меня Delphi 5
Хотелось бы знать как отловить вращение колёсика мышки. По факьюшкам, помнится, рылся, дак там только его наличие можно было выявить. А ещё я тут глумлюсь над StringGrid'ом и мне не нужно чтобы маркер ползал от колеса. Может быть его и перехватить можно как-нибудь? Всем заранее спасибо. -------------------- Вежливым и адекватным предлагаю общаться на "ты". |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
здается мне, что нужно добавлять событие к компоненте TStringGrid OnMouseWheel, такое как в DBGrid`е
|
|||
|
||||
| Snowy |
|
|||
|
Unregistered |
Какие ужасные проблеммы... В Delphi 7 есть стандастные события: OnMouseWheel, OnMouseWheelUp, OnMouseWheelDown.
Если конечно хочется помучиться, то придется отслеживать сообщения форме. Ждать сообщения WM_MOUSEWHEEL. Оно тебе заодно и скажет, куда крутить: вверх или вниз. Только оно работает не во всех версиях Win. В >=2k работает точно. Про остальные не скажу. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
в TStingGrid нету |
|||
|
||||
| bartram |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1606 Регистрация: 22.2.2004 Где: Russia, Samara Репутация: 3 Всего: 29 |
Snowy, зарегистрируйся раз такие полезные сообщения даёшь!
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Точно, поправочка. У StringGreed нет OnMouseWheel. Есть только OnMouseWheelUp, OnMouseWheelDown. Хотя это не многое меняет. Однако было бы полезно ловить именно сообщения формы, а не грида, т.к. грид и сам по колесу двигает ползунок, а вот, если фокус не на гриде, то в данном случае скролить область грида, а не позицию. Хотя можно совместить полезное с приятным и просто посадить на форму TApplicationEvents. А у него уже следить, что:
if Msg.Message=WM_MOUSEWHEEL then if Msg.lParam<0 then вверх else вниз; В данном случае будет работать везде. |
|||
|
||||
| z-END |
|
|||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: 11 Всего: 102 |
Это точно рабочий пример?! нет, я не-то чтобы не верю Snowy, просто щас на компе проверял, там lParam меняется только если координаты гызуна сдвинулсь, а реально данные находятся в wParam с точночтью до наоборот т.е. <0 значит вниз >0 наверх. Может быть у меня с компом че-то? т.к. уже столкнулся с тем что он как-то неесовсем правильно работает. см. тут -------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Конечно нет. Что-то я ляпнул на скорую руку не подумавши.
Рабочий код такой:
|
|||
|
||||
| BukaKoka |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 25.9.2009 Репутация: нет Всего: нет |
Отловить та отловили всё хорошо.
Но мне надо програмно покрутить им как это сделать. Какие функции здесь нужны? Спасибо. |
|||
|
||||
| v258 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 19.7.2005 Где: Краснодарский кра й Репутация: 2 Всего: 2 |
Я делал так (для Memo)
PS: IsCursor - функция для определения положения курсора, над Мемо он находится или нет Это сообщение отредактировал(а) v258 - 24.10.2009, 19:53 |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |