Delphi > Obecné

ScrollBox max position

(1/1)

vojtech.vitasek:
Zdravim,

jak zjistit u ScrollBoxu maximalni pozici pro scrollbary?

Chci udelat to, ze se bude scrollbox scrollovat na onmousewheel a to tak, ze pokud bude vertikalni scrollbar na konci, zacnu scrollovat horizontalnim a naopak. Tedy dokud to lze roluji vertikalni a pak horizontalni. Ale nevim jak zjistit, ze uz je verikalni scrollbar na konci.

Radek Červinka:
Já používám něco takového v OnMouseWheeel  (navíc musíš podle mne pracovat s VertScrollBar.Range) :


--- Kód: Delphi ---  with TScrollBox(Sender) do  begin    if VertScrollBar.IsScrollBarVisible then    begin      with VertScrollBar do      begin        if WheelDelta < 0 then          VertScrollBar.Position := VertScrollBar.Position  + ciStep        else          VertScrollBar.Position := VertScrollBar.Position  - ciStep ;        Handled := True;      end;    end;  end;  

vojtech.vitasek:
nakonec jsem vyresil jednoduse, ze si zapamatuji position pred zmenou a pokud po zmene se position neznemi u vertikalniho, tak zkusim zmenit u horizontalniho. Vyuzivam vlastnosti, ze pokud nastavuji position mino rozsah, tak se position nemeni. Chytre a jednoduche  :)


--- Kód: Delphi ---    OldVertPos := sb.VertScrollBar.ScrollPos;    OldHorzPos := sb.HorzScrollBar.ScrollPos;    Delta := WheelDelta div 3;     sb.VertScrollBar.Position := OldVertPos - Delta;     if sb.VertScrollBar.ScrollPos = OldVertPos then      sb.HorzScrollBar.Position := OldHorzPos - Delta;     if (sb.VertScrollBar.ScrollPos <> OldVertPos) or (sb.HorzScrollBar.ScrollPos <> OldHorzPos) then      Handled := True;

Navigace

[0] Seznam témat

Přejít na plnou verzi