Hallo!
Ich habe jetzt das MouseUp Ereignis so geändert:
Delphi-Quellcode:
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Left := Left + MouseX + DeltaX;
Top := Top + MouseY + DeltaY;
lbLeft.Caption := IntToStr(Left);
lbTop.Caption := IntToStr(Top);
end;
Die Werte MouseX, MouseY sind die aktuellen Muskoordinaten. Hier werden nun Left und Top immer erhöht, auch wenn ich die Maus nach oben bzw. links bewege.
Wenn ich DeltaX, DeltaY hinzu addiere, stimmt die Verschiebungsrichtung nicht bei jeder Mausposition. Außerdem ist der Betrag von DeltaX,DeltaY größer als 1. Intuitiv sage ich,
das ich ein Vorzeichen für MouseX,MouseY brauche.
In FormMouseDown merke ich mir die Mausposition in MouseX, MouseY. Aber wie dann weiter?
@DeddyH: Nach Deiner ANregung brauche ich noch ein DeltaX, DeltaY mit Vorzeichen. Wieso sollte ich da die Richtungserkennung nicht benötigen? Da brauch ich ja irgendwo einen Vergleich der Mausposition mit der vorherigen. Aber wie stelle ich das an?