Thema: Delphi OnMouseOut-Event

Einzelnen Beitrag anzeigen

MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#4

Re: OnMouseOut-Event

  Alt 18. Jan 2007, 17:47
Dieser Hook wird ausgelöst, wenn die Maus bewegt wird:

Delphi-Quellcode:
var
  Form1: TForm1;
  aHook : Cardinal;
  FHookStarted : Boolean;

[...]

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  Handled := False;
  if (Msg.message = WM_CANCELJOURNAL) and FHookStarted then
    aHook := SetWindowsHookEx(WH_JOURNALRECORD, @JournalProc, 0, 0);
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if FHookStarted then
    UnhookWindowsHookEx(aHook);
end;

function JournalProc(Code, wParam: Integer; var EventStrut: TEventMsg; Sender: TObject): Integer; stdcall;
var
  aPoint : TPoint;
begin
 Result := CallNextHookEx(aHook, Code, wParam, Longint(@EventStrut));
 if Code < 0 then Exit;
 if Code = HC_SYSMODALON then Exit;
 if Code = HC_ACTION then
  begin
   if (EventStrut.message = WM_MOUSEMOVE) then
   begin
     GetCursorPos(aPoint);
     Form1.Label1.Caption := IntToStr(aPoint.x) + ' ' + IntToStr(aPoint.y)
   end;
  end;
end;
so wird der hook gestartet:
Delphi-Quellcode:
hook starten

if (FHookStarted = false) then begin
  aHook := SetWindowsHookEx(WH_JOURNALRECORD, @JournalProc, hInstance, 0);
  FHookStarted := True;
end;
Du musst jetzt nur noch prüfen, ob sich sich in dem bereich deiner Form befindet oder nicht.

Gruß

[Edit]Sorry, hab ein Stückchen Code vergessen[/Edit]
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat