Mausposition

Rund um die LCL und andere Komponenten
Antworten
bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Mausposition

Beitrag von bembulak »

Hallo!

Ich habe eine Paintbox, die bei einem OnClick-Ereignis mit einem Bild versehen werden soll.
Das funktioniert ja gut, nur mit den Koordinaten meines Bildes habe ich noch Probleme.

Erst dachte ich, dass

Code: Alles auswählen

PaintBox1.Canvas.Draw(Mouse.CursorPos.X, Mouse.CursorPos.Y,img);
bei OnClick auch die Koordinaten der Maus auf dem Canvas zurückgibt. Nun, das hat nicht funktioniert und nach einigem Denken war es auch klar. Wie blöd von mir... :oops:

Gut, dachte ich - dann wird es die Position auf der Form sein. Aber wie ich mittlerweile herausfand, ist nicht mal das der Fall.
Mouse.CursorPos.X/Y geben also die absolute Position des Mauszeigers auf dem Desktop zurück. Da ich zweit Monitore habe, kann das schon mal 2500 x 1000 Pixel sein.

Jetzt also meine Frage: kann ich auch die Postion auf der Form herausfinden? Ich meine: klar, ich lasse mir die abs. Position geben und rechne dann mit den Größen und Positionen meiner Fenster und Komponenten, aber wie sehr nehmen verschiedene Themes darauf Einfluss, usw.?

Kurzum: Position auf der Form oder Komponente - gibt es dafür eine Funktion, die ich nur nicht gefunden habe, oder muss ich Hand anlegen?

Danke für jeden Hinweis.

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Hallo Bembulak,

habe ich dich richtig verstanden: Du möchtest die Mausposition auf deiner Paintbox ermitteln?

Dann habe ich den hoffentlich hilfreichen Tipp:

PaintBox1.OnMousemove
oder
PaintBox1.OnMouseDown

Diese Ereignisse überliefern die relative Mausposition (X und Y). Ursprung des Koordinatensystems ist dabei die linke obere Ecke deiner Paintbox, die Y-Achse geht nach unten. Kannst die Ereignisse direkt über den Objekt-Inspektor einrichten.

Viele Grüße, Euklid

bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Beitrag von bembulak »

Genau das war's danke.
OnMouseDown verhält sich zwar geringfügig anders als Click, aber das macht nix. Die beiden Parameter X und Y sind genau das, was ich wollte. Jetzt passt das mit den Koordinaten einwandfrei.

Vielen herzlichen dank für die schnelle Hilfe! *verbeug*

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

bembulak hat geschrieben:Genau das war's danke.
Freut mich.
OnMouseDown verhält sich zwar geringfügig anders als Click, aber das macht nix.
Da habe ich gerade den nächsten Tipp: OnMouseUp ;)

Antworten