Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Änderungen an der Mausposition warnehmen? (https://www.delphipraxis.net/84530-aenderungen-der-mausposition-warnehmen.html)

Dash 18. Jan 2007 01:09


Änderungen an der Mausposition warnehmen?
 
Hallo,

ich habe ein kleines Problem mit der Abfrage der Mausposition.
Die Abfrage selber ist ja über GetCursorpos() kein Problem, aber wie kann ich sofort feststellen das die Position sich geändert hat?

Hier mein bisheriger Code:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  newPos: TPoint;
begin
  GetCursorPos(newPos);
  if (oldPos.X <> newPos.X) or (oldPos.Y <> newPos.Y) then
  begin
    // Aktion ausführen
  end;
end;
Wie frage ich nun die alte Position dauerhaft ab?
Edit: Das ganze soll Systemweit geschehen, also bringt mir das OnMouseMove Event von ApplicationEvents sehr wenig.

Gruß
Dash

bitsetter 18. Jan 2007 01:47

Re: Änderungen an der Mausposition warnehmen?
 
Versuche es mal hiermit:
Delphi-Quellcode:
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    procedure MeineAppOnMessage(var Msg: TMsg; var Handled: boolean);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.MeineAppOnMessage(var Msg: TMsg; var Handled: boolean);
begin
  case Msg.Message of
    WM_MouseMove:
      begin
      //mach was!
      beep;
      end;
    WM_LBUTTONUP:
      begin
      //
      end;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  application.OnMessage:= MeineAppOnMessage;
end;

end.
Das onCreate Ereignis der Form nicht vergessen! :wink:

Dash 18. Jan 2007 01:53

Re: Änderungen an der Mausposition warnehmen?
 
Hi!

Danke, aber der Code funktioniert natürlich auch nicht Systemweit :cry: Sobald die Maus mein Fenster verlässt passiert nichts mehr.

bitsetter 18. Jan 2007 01:59

Re: Änderungen an der Mausposition warnehmen?
 
Wenn eine Nachricht der Mausposition auch über fremden Fenstern abgefangen werden soll, wird man dies mit einem Maushook machen können.
Diese Funktion wird man wohl in einer Dll einbringen müssen!
Versuche es mal hier!
assarbad

Dash 18. Jan 2007 18:50

Re: Änderungen an der Mausposition warnehmen?
 
So, ich habe nach ein wenig suchen jetzt auch was feines gefunden.
http://swissdelphicenter.ch/de/showcode.php?id=1729

Sollte genau das richtige für mich sein :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:33 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