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.