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

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

Прокрутка 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;


Наверх

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