Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подскажите, как отловить прокрутку на мыши?


mmms ©   (2006-06-13 22:26:00) 

Можно просто какие сообщения нужно отлавливать, остальное думаю разберусь :) Заранее благодарю.


mmms   (2006-06-14 13:13:00) [1]

Сделать получилось :)
А ещё можно вопрос :)

Если элементы на ScrollBox, то если фокус входит в любой элемент, код перестаёт работать, можно код подправить так, чтобы скрол на ScrollBox1 работал не зависимо, где фокус на этом ScrollBox1 (т.е. на ScrollBox1 - Edit например, если туда установить курсор, то скрол не работает..)
procedure Tfmain.WMMOUSEWHEEL(var Message: TMessage);
begin
 with ScrollBox1.VertScrollBar do
  begin
    if Message.WParam<0
    then
      Position := Position + Increment
    else
      Position   := Position - Increment;
    inherited;
  end;
end;


Eraser   (2006-06-13 22:57:00) [2]


> mmms   (13.06.06 22:26)

а зачем сообщения? всё уже перехвачено до нас, см. событие OnMouseWheel.
Если уж очень хочется перехватывать сообщения, то см. WM_MOUSEWHEEL.


mmms   (2006-06-13 22:29:00) [3]

ой, вроде уже нарыл :)
function GetNumScrollLines: Integer;
begin
  SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, @Result, 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(IntToStr(GetNumScrollLines));
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо