@DateTimeError: Ich liebe deinen Humor! Danke für die Infos.
So, das Problem habe ich erledigt.
Nach einigen Tagen intensivem Rumbasteln habe ich den ersten Dreh raus.
Mein Code ist vielleicht nicht hübsch oder effizient, aber er funktioniert!
Hier zum Abschluss nochmal der Quellcode, den ich selbst geschrieben hab.
Prinzipiell schiebe ich das Bild hin und her, solange ich die Maus gedrückt halte. Nebenbei noch eine Checkbox eingefügt:
Delphi-Quellcode:
procedure TForm1.CheckBox1MouseActivate(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y, HitTest: Integer;
var MouseActivate: TMouseActivate);
begin
if CheckBox1.checked = false then
begin
CheckBox1.Caption := 'Move Mode (click for Static Mode)' ;
end
else if CheckBox1.Checked = true then
begin
CheckBox1.Caption := 'Static Mode (click for Move Mode)' ;
end
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
CheckBox1.Checked := false ;
MouseMoveDown := false ;
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if CheckBox1.checked = true then
begin
MouseMoveDown := true;
GetCursorPos(OldPos);
DiffX := OldPos.X - Image1.Left ;
DiffY := OldPos.Y - Image1.Top ;
end;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
GetCursorPos(OldPos);
if MouseMoveDown = true then
begin
Image1.Top := OldPos.Y - DiffY;
Image1.Left := OldPos.X - DiffX ;
end;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
MouseMoveDown := false;
end;
end.
Damit ist das Thema erstmal erledigt. Kann geschlossen werden. Vielen Dank an alle!