| 
| 
 | Вопрос # 3 086/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!Можно ли, чтобы ScrollBox, во время нахождения в нем фокуса мыши, скроллился от колеса мыши? Если да, то как?
 Спасибо за ответ.
 
|  |   Вопрос задал: Pessimist (статус: Посетитель)Вопрос отправлен: 14 августа 2009, 07:43
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Amidamaru Здравствуйте, Pessimist!Для этой задачи потребуется событие OnMessage у Application.
 Самый простой способ - кинуть на форму компонент TApplicationEvents и использовать его событие OnMessage.
 Код который нужно вставить в обработчик в приложении.
 Приложение:Переключить в обычный режим procedure TForm1.AppEventsMessage(var Msg: tagMSG; var Handled: Boolean);var ctrl:TControl;    i:smallint;beginwith msg doif message=WM_MOUSEWHEEL thenbegin ctrl:=ControlAtPos(ScreenToClient(pt),false,true);if ctrl is TScrollBox then  begin   i:=smallint(hiword(wParam));  if i<>0 then  if i<0 then    PostMessage((ctrl as TScrollBox).Handle,WM_VSCROLL,MakeWParam(SB_LINEDOWN,0),0)  else PostMessage((ctrl as TScrollBox).Handle,WM_VSCROLL,MakeWParam(SB_LINEUP,0),0);   Handled:=true;  end;end;end;
|  | Ответ отправил: Amidamaru (статус: 4-ый класс)Время отправки: 15 августа 2009, 19:33
 Оценка за ответ: 5
 Комментарий к оценке: Спасибо. А то лежу, стараюсь поймать вдохновение и понял, что не смогу сделать такое. Запомню и использую. |  
 Мини-форум вопросаВсего сообщений: 4; последнее сообщение — 15 августа 2009, 20:12; участников в обсуждении: 2. 
|   | Amidamaru (статус: 4-ый класс), 15 августа 2009, 18:29 [#1]:Можно. Перехватывать сообщения мыши о движении колесика и скролить тот скролбокс, который в данный момент под курсором. |  
|   | Pessimist (статус: Посетитель), 15 августа 2009, 18:36 [#2]:перехватить сообщение еще смогу, а вот что-то не могу понять..как скролбар скролится... |  
|   | Amidamaru (статус: 4-ый класс), 15 августа 2009, 18:56 [#3]:Я раньше както делал в RiсhEdit, думаю тут будет не сложнее. Я щас разберусь с WM_MOUSEWHEEL и напишу в ответ. |  
|   | Amidamaru (статус: 4-ый класс), 15 августа 2009, 20:12 [#4]:Советую почитать help. У WM_MOUSEWHEEL и WM_VSCROLL (WM_HSCROLL) есть ещё немало интересного. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |