Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Mausbewegungen


ImbaPanda - So 10.06.07 12:34
Titel: Mausbewegungen
Also ich habe folgendes vor,
Ich will die Mausbewegungen im OnMouseMove Event abfangen und überprüfen, ob sich die Maus nach link, rechts, oben oder unten bewegt hat. Mir ist nur bisher nicht eingefallen, wie ich das anstellen kann.
Danke schonmal an alle :)


Danniolo - So 10.06.07 12:42

Du musst ganz am Ende von dem Event einfach den aktuellen Wert speichern und dann beim nochmaligen Aufrufen den einfach mit neueren Wert vergleichen.


ImbaPanda - So 10.06.07 12:43

Nur wie machen ich das? Das ist ja gerade mein Problem, weil ich auch keine entsprechende Funktion dafür kenne^^

Edit: Also für die Mausposition


Danniolo - So 10.06.07 12:44

Was genau machst du wie?


ImbaPanda - So 10.06.07 12:46

Also ich will bei einer Mausbewegung überprüfen, ob sich die nach links, rechts etc bewegt hat. Nur ich kenne keinen Befehl mit dem ich die Position abfragen kann.


Danniolo - So 10.06.07 12:47

Bei OnMouseMove wird dir die Position doch direkt übergeben:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer
);
var
  x1, y1: Integer;
begin
  if(x < x1) then // Maus wurde nach Links verschoben
    dosomething;
  if(x > x1) then // Maus wurde nach Rechts verschoben
    dosomething;
  if(y < y1) then // Maus wurde nach Oben verschoben
    dosomething;
  if(y > y1) then // Maus wurde nach Unten verschoben
    dosomething;
end;


ImbaPanda - So 10.06.07 12:49

Hab bissl rumprobiert, hab jetzt was gefunden:
Mouse.CursorPos.X
damit geht das


Danniolo - So 10.06.07 12:50

Jo, damit geht es üerall, auch wo über das Event keine Koordinaten direkt mit übergeben werden.