Thema: Delphi Fenster verschieben?

Einzelnen Beitrag anzeigen

DualCoreCpu
(Gast)

n/a Beiträge
 
#33

Re: Fenster verschieben?

  Alt 12. Sep 2009, 18:49
Zitat von DeddyH:
Wenn Du das jetzt auch noch nachvollziehen kannst, sind ja alle zufrieden
Werde mir das auf jeden Fall noch durcharbeiten. Klar, wenn X und Y relativ zum Formular zu betrachten sind, dann entsprechen X und Y der Strecke der Mausbewegung und die Richtung müsste sich dann mit dem Vorzeichen ergeben.

Left + X - DeltaX
Left + Y - DeltaY



In FormMouseDown werden DeltaX,DeltaY vorzeichengerecht ermittelt. Dann kommt die fragliche Berechnung.

Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if ssLeft in Shift then
    begin
      Left := Left + X - DeltaX;
      Top := Top + Y - DeltaY;
    end;
end;
Wie sind X und Y hier zu interpretieren?

Habe soeben mal die Addition von X und Y entfernt (auskommentiert). Da funktioniert die Verschiebung nicht mehr.

Und egal wei ich die Maus bewege, X und Y werden immer hinzu addiert. Das erkläre ich mir damit, das DeltaX,DeltaY wirklich die Differenz zur vorherigen Mausposition ist, während X und Y in FormMouseMove die aktuellen X,Y Werte der Mausposition sind.
  Mit Zitat antworten Zitat