Einzelnen Beitrag anzeigen

schöni

Registriert seit: 23. Jan 2005
Ort: Dresden
445 Beiträge
 
Delphi 7 Personal
 
#4

Re: MousePosition in dynamischer Klasse

  Alt 8. Aug 2009, 07:14
Hallo,

Dieser Thred bewegt mich zu der Frage, wie die Mausbewegung registriert wird:

Delphi-Quellcode:

function ContainsMouse(Left,Top, Width, Height ,X,Y: Integer): Boolean;
begin
  ContainsMouse := (X > Left) and (Y > Top) and (X < Width+Left) and (Y < Height+Top);
end;
Mit dieser Funktion bewegt sich das Control immer nach links. Um bei Bewegung der Maus nach rechts
das Control auch nach rechts zu bewegen, muss die Mausbewegungsrichtung registriert werden. Gibt es da standardisierte Verfahren?

Delphi-Quellcode:
Tform1.MyControlMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
  if X < Xalt then directionX := -1 else directionX := 1;
  if Y < Yalt then directionY := -1 else directionY := 1;
  Xalt := X; Yalt := Y;
end;
Danach sähe meine Funktion ContainsMouse so aus:

Delphi-Quellcode:

function TForm1.ContainsMouse(Left,Top, Width, Height ,X,Y: Integer): Boolean;
begin
  X := X * directionX;
  Y := Y * directionY;
  ContainsMouse := (X > Left) and (Y > Top) and (X < Width+Left) and (Y < Height+Top);
end;
Nun funktioniert ja das Bewegen und Ändern der Größe der Delphi Controls bereits. Aber wie wird die Mausbewegung registriert. Wie ermittelt Delphi also die Variablen Xalt, Yalt, die ich in meinem Beispielcode stehen habe. Sicher kommt hier noch der Timer "ins Spiel". Welcher Zeitabstand wird da standardmäßig verwendet, um die Bewegungsrichtung festzustellen?
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.
  Mit Zitat antworten Zitat