Thema: Delphi Fenster verschieben?

Einzelnen Beitrag anzeigen

DualCoreCpu
(Gast)

n/a Beiträge
 
#37

Re: Fenster verschieben?

  Alt 13. Sep 2009, 08:22
Hallo,

bin noch immer beim Nachvollziehen meines Quelltextes. Zum besseren Verständnis habe ich den Hinweis von @NamenLozer aufgegriffen. Ich habe also die bisherigen DeltaX,DeltaY Variablen in StartX und StartY umbenannt, weil diese Werte unabhängig von der Bewegungsrichtung der Maus immer positiv sind. Danach müssten DeltaX,DeltaY die Differenz zum Startpunkt in FormMouseDown und dem aktuellen Punkt in FormMouseUp bzw. FormMouseMove sein.

Der folgende Quelltext zeigt mir aber in FormMouseUp den Wert 0 für DeltaX und DeltaY an. Irgendwas habe ich da doch noch nicht verstanden. Bitte helft mir noch mal. Hier sind meine Änderungen.

Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if ssLeft in Shift Then
  begin
    Left := Left + X - StartX;
    Top := Top + Y - StartY;
  end;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  var P: TPoint;
begin
  StartX := X; StartY := Y;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  DeltaX := X - StartX;
  DeltaY := Y - StartY;
  lbMouseX.Caption := IntToStr(DeltaX);
  lbMouseY.Caption := IntToStr(DeltaY);
end;
  Mit Zitat antworten Zitat