Delphi-Quellcode:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if isMoved then
begin
if X <> StartX then begin
scrollbox1.horzScrollBar.Position := scrollbox1.horzScrollBar.Position - (X-StartX);
end;
if Y <> StartY then
scrollbox1.vertScrollBar.Position := scrollbox1.vertScrollBar.Position - (Y-StartY);
end;
end;
Obiger Code in ImageMouseMove müsste eigentlich schon ausreichen. Start X brauche ich doch nicht jedesmal mitzukorrigieren, da ja beides auch Koordinaten (sowohl z.B. X als auch dann StartX) auf eben diesem Image selbst sind. Durch die Änderung von dann nur der ScrollBar.Position wird damit aber natürlich auch gleichzeitig das X immer wieder so lange mitverändert, bis diese aktuelle Mausposition dann eben auf dem Bild auch wieder auf der exakt gleichen Stelle herausgekommen ist, auf der du die Maus auch ursprünglich niedergedrückt hast (und dann ist eben wieder X = StartX und der Scrollvorgang damit zu Ende).