Wie kann man eigentlich eine ScrollBox zentrieren?
Ich hab ein Image drin das in der linken oberen Ecke hängt und möglicherweise viel größer als die Scrollbox ist.
In diesem Fall soll man erstmal die Mitte des Images sehen.
Folgendes funktioniert nicht:
Delphi-Quellcode:
ScrollBox1.HorzScrollBar.Position := (ScrollBox1.HorzScrollBar.Range - ScrollBox1.HorzScrollBar.ThumbSize) div 2;
ScrollBox1.VertScrollBar.Position := (ScrollBox1.VertScrollBar.Range - ScrollBox1.VertScrollBar.ThumbSize) div 2;
Das kommt aufs gleiche raus wie:
Delphi-Quellcode:
ScrollBox1.HorzScrollBar.Position := ScrollBox1.HorzScrollBar.Range div 2;
ScrollBox1.VertScrollBar.Position := ScrollBox1.VertScrollBar.Range div 2;
Ich hab sogar ein Application.ProcessMessages davor damit die ScrollBox bemerken kann dass sich ThumbSize geändert hat, bringt aber auch nix.
Zur Entwurszeit ist ThumbSize = 0, ich nehme an damit er sich dynamisch an den Inhalt anpasst. Aber ich muss doch die tatsächliche Größe zur Laufzeit auch kriegen.