![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]можно