Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.09;
Скачать: CL | DM;

Вниз

Вопрос для мастеров...   Найти похожие ветки 

 
Man-In-Red ©   (2002-06-25 20:00) [0]

Как узнать, что колесико мышки крутиться вверх или вниз, независимо от того, на каком компоненте находится фокус? И как обрабатывать эти события?


 
Niko.   (2002-06-25 20:40) [1]

перехватывай сообщение WM_MOUSEWHEEL


 
Man-In-Red ©   (2002-06-25 21:43) [2]

А можно поподробней или пример?
Буду очень благодарен!


 
Anatoly Podgoretsky ©   (2002-06-25 21:52) [3]

Колесико у мышки не крутится вниз/вверх, а от тебя или к тебе, подробности об этом смотри в хелпе по сообщению WM_MOUSEWHEEL


 
Man-In-Red ©   (2002-06-25 23:30) [4]

Буду знать… а в хелпе ничего нету :(
Помогите пожалуйста!


 
Юрий Зотов ©   (2002-06-25 23:49) [5]

> а в хелпе ничего нету
Неправда. Только что смотрел - есть.

> независимо от того, на каком компоненте находится фокус?
Вообще-то, мышь и клавиатура - вещи разные, твк что фокус здесь ни при чем. Либо сажайте хук, либо назначайте всем контролам один и тот же обработчик OnMouseWheel, а в нем уже разруливайте.




 
Anatoly Podgoretsky ©   (2002-06-25 23:58) [6]

Man-In-Red © (25.06.02 23:30)
Есть и очень подробный, настолько что вопросов не возникает.


 
Man-In-Red ©   (2002-06-26 02:25) [7]


> Есть и очень подробный, настолько что вопросов не возникает.

Но где? Весь хелп перерыл – не нашел :(
Может плохо искал?
Напишите пожалуйста что там в этом хелпе сказано…буду очень благодарен!


 
rhf ©   (2002-06-26 05:28) [8]

а у тя какая Дельфя стоит?
и где ты искал.......в SDK все есть.


 
Man-In-Red ©   (2002-06-26 12:02) [9]

Delphi5,
SDK-???


 
vinrom   (2002-06-26 15:16) [10]

MS SDK Help. А вообще, лучше MSDN ничего нет


 
Anatoly Podgoretsky ©   (2002-06-26 16:05) [11]

Явно не в том хелпе ищешь, ради интереса посмотри папки
{Delphi}\Help
C:\Program Files\Common Files\Borland Shared\MSHelp
будешь удивлен, но и без этого - меню Help третий сверху пункт
Если же ты не установил хелпы, то переинсталируй Дельфи


 
Man-In-Red ©   (2002-06-26 16:40) [12]

Нашел… Но, там написано что только для Win NT!
А мне нужно 9x…
Так как быть?


 
rhf ©   (2002-06-26 16:54) [13]

у меня под рукой сейчас нет хелпов......

но там случайно не <Now supported on Windows NT> написано :)
если так то это вовсе не значит что он под win9x не работает :)


 
Man-In-Red ©   (2002-06-26 17:09) [14]

Там написано:
[New - Windows NT]

Windows NT---------Yes
Windows 95---------No
Windows 32s--------No


 
Anatoly Podgoretsky ©   (2002-06-26 17:17) [15]

Man-In-Red © (26.06.02 16:40)
Ты ничего про 9x не говорил, да когда разрабатывался 95 таких мышей не было, не говоря уже про Windows 32s


 
rhf ©   (2002-06-26 17:33) [16]

я на msdn.microsoft.com глянул .... вроде сказано - Included in Windows 98, Windows NT 4.0

но точно не могу говорить..... нету рядом родимой делфи...

:)


 
Man-In-Red ©   (2002-06-26 18:46) [17]


> Anatoly Podgoretsky © (26.06.02 17:17)
> Man-In-Red © (26.06.02 16:40)
> Ты ничего про 9x не говорил, да когда разрабатывался 95
> таких мышей не было, не говоря уже про Windows 32s

А Windows 98, Win Me! Тогда уже были мышки на колесах…

Так есть какой-нибудь способ решить этот вопрос?


 
Man-In-Red ©   (2002-06-26 20:20) [18]

???


 
rhf ©   (2002-06-26 20:34) [19]

ну так ты поробовал то, что в хелпе или как?


 
Anatoly Podgoretsky ©   (2002-06-26 20:34) [20]

Так ты просто проверь, попробуй поймать это сообщение, кстати надо точнее задавать вопрос, теперь у тебя выползли Windows 98, Win Me, я уже даже боюсь что либо говорить, вдруг еще что выползет :-)


 
Cobalt ©   (2002-06-26 21:03) [21]

>Anatoly Podgoretsky © (26.06.02 16:05)
>будешь удивлен, но и без этого - меню Help третий сверху пункт
У меня Дельфи 4, SDK поставил, но "меню Help третий сверху пункт" - Inprise Home Page ;))


 
Юрий Зотов ©   (2002-06-26 23:42) [22]

Цитата из MSDN (описание WM_MOUSEWHEEL):

Requirements:
Windows NT/2000 or later: Requires Windows NT 4.0 or later.
Windows 95/98/Me: Requires Windows 98 or later.

То есть, будет работать под всеми Win32, кроме NT 3.51 и Win95. Осталось только найти того, у кого они еще остались.


 
Man-In-Red ©   (2002-06-27 00:28) [23]

Допустим… Теперь главный вопрос :)
Как пользоваться этим самым WM_MOUSEWHEEL?
Хелп мне ничего не говорит…
Может примерчик у кого есть?


 
Юрий Зотов ©   (2002-06-27 00:32) [24]

В хелпе Delphi есть описание события OnMouseWheel. Там все и сказано, очень подробно. И все то же самое подходит к сообщению WM_MOUSEWHEEL.


 
rhf ©   (2002-06-27 00:39) [25]

кусок с msdn.microsoft.com
....
wParam
The high-order word indicates the distance the wheel is rotated, expressed in multiples or divisions of WHEEL_DELTA, which is 120. A positive value indicates that the wheel was rotated forward, away from the user; a negative value indicates that the wheel was rotated backward, toward the user.


 
rhf ©   (2002-06-27 00:50) [26]

2 Man-In-Red


procedure WMMouseWheel( var msg:tMessage);message WM_MOUSEWHEEL;
.....

procedure form1.WMMouseWheel( var msg:tMessage);
begin
if msg.wparamHi>0 then showMessage("Вверх")
else showMessage("Вниз");
end;


наверное так.... вот только мне проверить не начем :)
есть тут Delphi3 вот только ей такие дела еще не известны :D


 
Balu ©   (2002-06-27 12:27) [27]

У меня, почемуто только так забегало:
if msg.wparamHi<121 then Label1.Caption := "Вверх"
else Label1.Caption := "Вниз";


 
MAN-IN-RED ©   (2002-06-27 18:56) [28]

Всем большое спасибо… Вопрос закрыт!


 
Man-In-Red ©   (2002-06-27 19:21) [29]

Вопрос открыт :)
Как сделать чтобы она работала на всех формах?


 
rhf ©   (2002-06-27 19:51) [30]

поточнее........


 
Anatoly Podgoretsky ©   (2002-06-27 21:15) [31]

Cobalt © (26.06.02 21:03)
Ну о тебе речи нет, я думаю ты бы указал используемую версию Дельфи, не так ли?


 
Man-In-Red ©   (2002-06-28 02:08) [32]

Может быть...Выше я уже писал какая делфя стоит - Delphi5!
А поточнее - Эта процедура работает только если активна форма в которой она прописана… А как сделать чтобы она работала независимо от того какая в данный момент открыта форма?!


 
rhf ©   (2002-06-28 09:02) [33]

ты имеешь в виду независимо от активного приложения..... или это у тебя в проекте форм много?


 
Man-In-Red ©   (2002-06-28 13:41) [34]


> ты имеешь в виду независимо от активного приложения.....
> или это у тебя в проекте форм много?

В проекте форм много...
Заранее благодарен!


 
rhf ©   (2002-06-28 16:06) [35]

форм много....
попробуй application.onMessage или хук поставь, это вроде будет локальный можно и без длл обойтись......



Страницы: 1 вся ветка

Текущий архив: 2002.09.09;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.273 c
14-27196
Sten
2002-08-12 00:28
2002.09.09
Подскажите компАнет....плииииз


14-27174
arbiter
2002-08-13 22:30
2002.09.09
Что лучше для FTP


14-27192
Shaman_Naydak
2002-08-14 13:17
2002.09.09
Well Known Bugs List


1-27008
xyz
2002-08-22 02:10
2002.09.09
Integer прописью


14-27228
vedmed
2002-08-16 10:45
2002.09.09
Что бы это значило? (var c: Char; ... c := ^A)