![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Прокрутка ScrollBox
Константинов © (2007-02-15 22:24:00)Нужно прокручивать скролбар колесиком мыши. Наваял следующее:
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := MyMessage;
end;
procedure TForm1.MyMessage(var Msg: TMsg; var Handled: Boolean);
var VPos : integer;
begin
case Msg.message of
WM_MOUSEWHEEL : begin
StatusBar1.Panels[3].Text := IntToStr(Msg.wParam);
VPos := GetScrollPos(ScrollBox1.Handle,SB_VERT);
if Msg.wParam > 0
then SetScrollPos(ScrollBox1.Handle,SB_VERT,VPos+10,true)
else SetScrollPos(ScrollBox1.Handle,SB_VERT,VPos-10,true);
Handled := true;
end;
end;
end;
Скролл прокручивается, элементы на ScrollBox не перемещаются. Как лечится? Заранее спасибо.
Константинов (2007-02-16 00:06:00) [1]Разобрался
ScrollBox1.SetFocus +
procedure TForm1.ScrollBox1MouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
if WheelDelta > 0
then ScrollBox1.VertScrollBar.Position := ScrollBox1.VertScrollBar.Position - 20
else ScrollBox1.VertScrollBar.Position := ScrollBox1.VertScrollBar.Position + 20;
end;