![]() |
Mausradgeschwindigkeit ermitteln und darauf reagieren???
Hallo,
ist es mir irgendwie möglich, dass ich in einer EditBox (mit ner zahl) a) auf Mausradbewegungen reagieren und immer den Wert um 1 hochzählen kann b) je nach Geschwindigkeit um1,5,10 hochzählen kann??? danke, winx |
Re: Mausradgeschwindigkeit ermitteln und darauf reagieren???
Hallo,
wenn du die Komponente TApplicationEvents auf das Formular ziehst und da in das Event onMessage folgenden Code einfügst, dann würde zumindest Punkt a) gehen.
Delphi-Quellcode:
Veraussetzung ist natürlich, dass im Feld auch immer eine Zahl steht.
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean); begin if (Msg.hwnd= Edit1.Handle) and (Msg.message = WM_MOUSEWHEEL) then if Msg.wParam> 0 then Edit1.Text := inttostr(strtoint(Edit1.Text) + 1) else Edit1.Text := inttostr(strtoint(Edit1.Text) -1); end; |
Re: Mausradgeschwindigkeit ermitteln und darauf reagieren???
Schwierig, da die Mausradinformationen in Spruengen von 120 abgeliefert wird. Der Treiber der Maus liefert kleinere Werte, aber diese werden aufsummiert.
|
Re: Mausradgeschwindigkeit ermitteln und darauf reagieren???
was bedeutet das genau?
|
Re: Mausradgeschwindigkeit ermitteln und darauf reagieren???
Ich glaube, dass es ohne sich irgendwie in den Maustreiber einzubinden ist nicht möglich ist an genauere Werte als diese 120er Schritte zu kommen.
|
Re: Mausradgeschwindigkeit ermitteln und darauf reagieren???
Delphi-Quellcode:
procedure TForm1.CalcMouseVel;
var MouseX, MouseY : integer; begin // Compensate for window origin vs. screen origin. MouseX := Mouse.CursorPos.X - Form1.ClientOrigin.X; MouseY := Mouse.CursorPos.Y - Form1.ClientOrigin.Y; Label1.Caption := Format('Mouse velocity: %d, %d', [MouseVelX, MouseVelY]); end; So kann man sie ermitteln, wenn man das ganze durch einen Timer aulöst. |
Re: Mausradgeschwindigkeit ermitteln und darauf reagieren???
Er will nicht die Mausgeschwindigkeit, sondern die Mausrad-Geschwindigkeit.
Man sollte die Mausrad-Messages im Application.OnMessage mithoeren und per GetMessageTime den Zeitpunkt der Ankunft der Message bestimmen. Mit den Daten kann man nun die aktuelle Mausradgeschwindigkeit einigermassen bestimmen. |
Re: Mausradgeschwindigkeit ermitteln und darauf reagieren???
Hallo,
meine jcl Kompo hat ein Ereignis MouseWheelUp, aber leider springt da der Compiler nie rein :-( procedure Tactionform.JvSpinEditDXMouseWheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); begin showmessage(FloatToStr(JvSpinEditDX.Value)); end; weiss jemand woran das liegen könnte? danke |
Re: Mausradgeschwindigkeit ermitteln und darauf reagieren???
Neue Frage neuer Thread.
|
Re: Mausradgeschwindigkeit ermitteln und darauf reagieren???
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz