19.09.2006, 15:11
общий
это ответ
Здравствуйте, VNos!
Можно обработать OnMouseWheel.
Если бросить на форму Form1 скроллер Scroll1:TScrollBar, то в обработчике OnMouseWheel следующий код будет скроллировать компонент Scroll1. Аналогичный принцип присобите для своего приложения:
procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
ScrollBar1.Position:=ScrollBar1.Position-WheelDelta div WHEEL_DELTA;
Handled:=true;
end;
WHEEL_DELTA - это константа Microsoft (=120), это порог одного шага поворота колесика (он ведь вращается неплавно) - сделано для увеличения точности отслеживания поворота в будущем, а пока можно забить и просто делить на 120.
WheelDelta положительна, если пользователь крутит вверх. И еще. Событие OnMouseWheel не посылается элементу без фокуса (по крайней мере, так раньше в документации писали).