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

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

ScrollBox [D7]


Елена ©   (2011-12-08 18:10:00) 

Здравствуйте. Можно ли "заставить" ScrollBox реагировать на колесико мыши?


Laguna   (2011-12-08 23:47:00) [1]


procedure TMainFrm.FormMouseWheel(Sender: TObject; Shift: TShiftState;
 WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
Var
 sled : Integer;
begin
 Handled := True;
 if (WheelDelta > 0) then
  sled := Opt_A.ParDelta
 else
  sled := -Opt_A.ParDelta;
 if TScrollBox(FindComponent('SB1')) <> nil then
  with TScrollBox(FindComponent('SB1')) do
   VertScrollBar.Position := VertScrollBar.Position - sled;
end;

Взято из реального кода, т.к. SB1 формировался в рантайм и устанавливалась дельта из параметров программы.


Dimka Maslov   (2011-12-08 18:22:00) [2]

События от колёсика мыши направляются не в окно, над которым находится курсор, а в окно, имеющее фокус. Поэтому для реакции скроллбокса на колесо надо либо передать на него фокус, либо сделать на форме KeyPreview = true и транслировать события от колеса мыши в скроллбокс


Rouse_   (2011-12-08 18:17:00) [3]

WM_MOUSEWHEEL + SetScrollPos()


DVM   (2011-12-08 18:16:00) [4]

можно


Наверх

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