Die Zeit der letzten Bewegung merken, sollte doch auch gehen.
Die Mausbewegung ist doch auch nur ein diskretes Ereignis. Da musst du irgendwie mit Zeiten arbeiten.
Edit: Ohne Timer dann vielleicht so
Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
stampx:=x;
stampy:=y;
stamp:=gettickcount;
end;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const output:array[boolean] of string=('Stillstand','Bewegung');
limit=2;
var speed:double;
divstamp:cardinal;
begin
divstamp:=gettickcount-stamp;
if divstamp=0 then
speed:=limit*50
else
speed:=sqrt(sqr(stampx-mouse.CursorPos.X)+sqr(stampy-mouse.CursorPos.y))/(divstamp);
edit1.text:=floattostr(speed)+' '+output[speed>limit];
end;
end.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.