AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RawInput und Koordinaten: wie?

Ein Thema von ULIK · begonnen am 3. Nov 2020 · letzter Beitrag vom 6. Nov 2020
 
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
989 Beiträge
 
Delphi 6 Professional
 
#4

AW: RawInput und Koordinaten: wie?

  Alt 5. Nov 2020, 07:28
Hmm..

Hier eine kleine Funktion, welche prüft, ob sich der Mauszeiger innerhalb der Form befindet.

Delphi-Quellcode:
function TForm1.CheckInForm(AScreenPoint: TPoint): boolean;
var
  tp: TPoint;
begin
  tp := self.ScreenToClient(AScreenPoint); // Umrechnen MousePos zu Pos der Form
  Result := PtInRect(self.ClientRect, tp); // Prüfen, ob Pos 'im' Formular

  // Testweise Position in der Form anzeigen
  if Result then begin
    EditClientPos.Text := IntToStr(tp.X) + ' / ' + IntToStr(tp.Y);
  end else
    EditClientPos.Text := '';
end;
Ich habe das jedoch nur mit SetWindowsHookEx über mehrere Monitore incl. verschieben der Form getestet..

Delphi-Quellcode:
var
  HookHandle: Cardinal;

function LowLevelMouseProc(nCode: Integer; wParam: wParam; lParam: lParam): LRESULT; stdcall;
var
  p : TPoint;
begin
  if (nCode >= 0) then begin
    p := PMSLLHOOKSTRUCT(lParam)^.POINT;
    if Form1.CheckInForm(p) then begin
      // Bin auf der Form Form...
    end;
  end;
  Result := CallNextHookEx(HookHandle, nCode, wParam, lParam);
end;

function InstallMouseHook: Boolean;
begin
  Result := False;
  if HookHandle = 0 then
  begin
    HookHandle := SetWindowsHookEx(WH_MOUSE_LL, @LowLevelMouseProc, hInstance, 0);
    Result := HookHandle <> 0;
  end;
end;

procedure DeleteMouseHook;
begin
  if HookHandle <> 0 then
    UnhookWindowsHookEx(HookHandle);
end;
Ah..
Die Prüfung liefert auch True zurück, wenn deine Form nicht Aktiv oder gar verdeckt ist. Somit musst Du dass dann noch gegenprüfen.
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 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