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