Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Mausradgeschwindigkeit ermitteln und darauf reagieren??? (https://www.delphipraxis.net/94986-mausradgeschwindigkeit-ermitteln-und-darauf-reagieren.html)

winx 28. Jun 2007 21:57


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

bitsetter 28. Jun 2007 23:19

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:
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;
Veraussetzung ist natürlich, dass im Feld auch immer eine Zahl steht.

Robert Marquardt 29. Jun 2007 04:41

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.

winx 29. Jun 2007 07:58

Re: Mausradgeschwindigkeit ermitteln und darauf reagieren???
 
was bedeutet das genau?

vlees91 29. Jun 2007 08:00

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.

Clobber the mob 29. Jun 2007 08:06

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.

Robert Marquardt 29. Jun 2007 08:11

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.

winx 29. Jun 2007 09:05

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

Robert Marquardt 29. Jun 2007 09:09

Re: Mausradgeschwindigkeit ermitteln und darauf reagieren???
 
Neue Frage neuer Thread.

Luckie 29. Jun 2007 09:18

Re: Mausradgeschwindigkeit ermitteln und darauf reagieren???
 
Zitat:

Zitat von Robert Marquardt
Neue Frage neuer Thread.

Und deswegen schliess eich hier mal. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz