Przesuwanie komponentów w scrollbox na bieżąco

0

Cześć,
Mam w Scrollbox kilka komponentów, wszystko w nim ustawiłem i działa tak jak chcę. Wszystko oprócz jednego. Otóż gdy przesuwam myszką pasek scrollbara, pozycja komponentów w scrollboxie uaktualnia się dopiero po puszczeniu przycisku myszki. Czy jest jakiś sposób by komponenty przesuwały się podczas przesuwania tego paska?

0

Bo tak już jest chyba skonstruowany ScrollBox. Jeżeli chcesz płynnie przesuwać komponentu to
raczej musisz obslużyć ruchy kółkiem myszki. A można to zrobić na przykład tak, jak poniżej.

//...
const
  Ct_ScrBox_WheelDelta = 60;
//...
procedure TMainForm.ScrBox_AMouseWheelDown(Sender : TObject;
  Shift : TShiftState; MousePos : TPoint; var Handled : Boolean);
begin
  with Sender as TScrollBox do
  begin
    VertScrollBar.Position := VertScrollBar.Position + Ct_ScrBox_WheelDelta div 5;
  end;
end;

procedure TMainForm.ScrBox_AMouseWheelUp(Sender : TObject;
  Shift : TShiftState; MousePos : TPoint; var Handled : Boolean);
begin
  with Sender as TScrollBox do
  begin
    VertScrollBar.Position := VertScrollBar.Position - Ct_ScrBox_WheelDelta div 5;
  end;
end;
0

a nie łatwiej po prostu ustawić VertScrollBar Tracking na TRUE i po sprawie

0

A tego nie znałem, dzięki za info puchi przyda mi się też w jednym programie.
Po prostu wcześniej nie przyjrzałem się wszystkim tym wlasnością ScrollBoxa.

0

Dzięki. Tego mi właśnie było trzeba. Nie sądziłem, że odpowiedź okaże sie tak prosta

1 użytkowników online, w tym zalogowanych: 0, gości: 1