Hast Du mal die ScrollTo Optionen angesehen und damit etwas versucht?
Ich nutze ScrollToTop, was bei meiner Anwendung funktioniert, aber solche Basics wie Scrolling sind immer wieder extrem fragil.
Delphi-Quellcode:
procedure TCustomPresentedScrollBox.ScrollToCenter(const AAnimated: Boolean);
var
ContentBoundsTmp: TRectF;
ViewportSizeTmp: TSizeF;
DestPoint: TPointF;
begin
ContentBoundsTmp := ContentBounds;
ViewportSizeTmp := ViewportSize;
DestPoint := TPointF.Create((ContentBoundsTmp.Width - ViewportSizeTmp.Width) / 2, (ContentBoundsTmp.Height - ViewportSizeTmp.Height) /2);
ScrollBy(DestPoint.X - ViewportPosition.X, DestPoint.Y - ViewportPosition.Y, AAnimated);
end;
procedure TCustomPresentedScrollBox.ScrollToTop(const AAnimated: Boolean = True);
begin
ScrollBy(0, -ViewportPosition.Y, AAnimated);
end;