Niestety, ale sprawa nie jest taka łatwa jak się może wydawać.
Przyjmijmy:
Scrollbar1.Max:=100;
Gaugebar1.Max:=100;
Wartość PageSize Scrolla: 10 => dla Gaugera belka jest równa belce ze scrollbara, gdy Handlesize: 17
PageSize: 10 => HandleSize: 17 (HandleSize:=HandleSize+7)
PageSize: 20 => HandleSize: 34 (+14)(2*7)
PageSize: 30 => HandleSize: 51 (+21)(3*7)
PageSize: 40 => HandleSize: 68 (+28)(4*7)
Ale już:
PageSize: 5 => HandleSize: 7 (+2)
PageSize: 50 => HandleSize: 86 (+36);
Dla:
Scrollbar1.Max:=200;
Gaugebar1.Max:=200;
PageSize: 10 => HandleSize: 6 (-4)
PageSize: 20 => HandleSize: 16 (-4)
PageSize: 30 => HandleSize: 26 (-4)
ale:
PageSize: 40 => HandleSize: 34 (-6)
PageSize: 50 => HandleSize: 44 (-6)
PageSize: 60 => HandleSize: 52 (-8)
Wnioski:
Nie istnieje stała wartość, jaką mogę dodać do HandleSize, by Scroll w Gaugebarze wyrównał się ze Scrollem w Scrollbarze.
Pytania: Czy istnieje możliwość pobrania height samej belki w Scrollbarze?
Próbowałem tak: (Wysokosc belki=ScrollBar1.Height-2*17-x)
gdzie: 17 -> height jednego przycisku na scrollu, x-> pozostała wartość w pixelach(po której przesuwa się button). Potrzebuję albo wartość x, albo wysokość belki.
Przypominam: Jednostki w Scrollbarze wyglądają tak:
Scrollbar1.Max:=100;
Scrollbar1.PageSize:=50; //wysokosc belki
Wtedy PageSize zajmuje 1/2 miejsca na scrollu.
Gaugebar.HandleSize jest wysokością belki w pixelach.
Zależy mi na Gaugebarze, bo istnieje w tym komponencie możliwość kolorowania przycisków, belki, cieni, tła itp., ale nie istnieje niestety możliwość zmiany właściwości z pixeli na wartości Scrollbara.
Proszę o wskazówki i rady. Pozdrawiam :)