AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Mauskoordinaten relativ zum aktuellen Monitor?
Thema durchsuchen
Ansicht
Themen-Optionen

Mauskoordinaten relativ zum aktuellen Monitor?

Ein Thema von PeterPanino · begonnen am 29. Okt 2022 · letzter Beitrag vom 29. Okt 2022
Antwort Antwort
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#1

Mauskoordinaten relativ zum aktuellen Monitor?

  Alt 29. Okt 2022, 12:42
Guten Tag! Ich möchte die Maus-Koordinaten relativ zu dem Monitor eruieren, auf dem sich die Maus befindet. Also: X = 0 am jeweiligen linken Bildschirmrand, und Y = 0 am jeweiligen oberen Bildschirmrand.

Beispiel: Wenn der Benutzer 2 Monitore verwendet und der Hauptbildschirm links angeordnet ist:

Delphi-Quellcode:
var
  pt: Winapi.Windows.TPoint;
  CurrentMonitor: Vcl.Forms.TMonitor;
  MouseXOnCurrentMonitor: Integer;

Winapi.Windows.GetCursorPos(pt);
CurrentMonitor := Vcl.Forms.Screen.MonitorFromPoint(pt);

if CurrentMonitor.MonitorNum = 0 then
  MouseXOnCurrentMonitor := pt.X
else
  MouseXOnCurrentMonitor := pt.X - Screen.Width;
Aber vielleicht hat jemand schon das Rad erfunden?
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Mauskoordinaten relativ zum aktuellen Monitor?

  Alt 29. Okt 2022, 13:04
Alle Controls/WinControls haben eine Methode ScreenToClient und ClientToScreen.

Warum MonitorNum=0 ?
Was passiert, wenn du mal 3 Monitore hast?

Der gefundene Monitor gibt dir sein Rect und damit solltest du besser direkt rechnen.



TPoint und TRect haben ein .Offset oder das alte einsame OffsetRect.


PS: FindVCLWindow (falls man nicht eigentlich den Monitor sondern das darauf wissen wollte)
Und auch Forms haben ein Monitor-Property, der das zugehörige Rect gibt.
$2B or not $2B

Geändert von himitsu (29. Okt 2022 um 13:11 Uhr)
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Mauskoordinaten relativ zum aktuellen Monitor?

  Alt 29. Okt 2022, 13:21
Du meinst also?:

MouseXOnCurrentMonitor := pt.X - CurrentMonitor.BoundsRect.Left;
MouseYOnCurrentMonitor := pt.Y - CurrentMonitor.BoundsRect.Top;
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 22:35 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