Wyśrodkowanie pozycji scrollbar'a

0

Witam.
Mam na formie SrollBox'a a na nim Image'a.
W zależności od wielu rzeczy (nie będę wam tłumaczył działania całego programu ;-) ) image może być różnych rozmiarów.
Teraz pytanie:
Jak zrobić żeby po załadowaniu Picture (dowolnej wielkości) scrollbar'y ze SrollBox'a były ustawione na środek załadowanego Picture.

0
Function ustawPoSrodku(const leftTopRodzica, widthHeightRodzica, widthHeightPotomka : integer) : integer;
//funkcja z podanych informacji, tj.
//leftTopRodzica - odleglosc od lewej lub gornej krawedzi obiektu odniesienia
//widthHeightRodzica - szerokosc lub wysokosci obiektu odniesienia
//widthHeightPotomka - szerokosc lub wysokosci obiektu, ktory chcemy przesunoc
//podaje jego Left lub Top względem obiektu odniesienia, aby był on mniej więcej na ¶rodku
//Stworzono przez Korpirkor-a :)
//lubie funkcje, których opis jest dłuższy od bloku a i tak nie wiadomo jak jej użyć
begin
   result := Round((0.5*widthHeightRodzica) - (0.5*widthHeightPotomka)) + leftTopRodzica;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
// gdy nie ma scrolli
   Image2.Left := ustawPoSrodku(0,ScrollBox1.Width, Image2.Width);
   Image2.Top := ustawPoSrodku(0,ScrollBox1.Height, Image2.Height);
//gdy są scrollbary
   ScrollBox1.HorzScrollBar.Position := round((Image2.Width - ScrollBox1.Width) / 4);
   ScrollBox1.VertScrollBar.Position := round((Image2.Height - ScrollBox1.Height) / 4);
end;

Teraz tylko kod z form create trzeba odchucić, by część ze skrolami nie wykonywała się, gdy skroli nie ma :P

Pozdrawiam !

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