Mousezeiger setzen
-
Hallo,
ich habe in einem TImage ein Bitmap geöffnet. Mit dem Pixel des Bitmaps wird gearbeitet. So werden z.B. an einem bestimmten Ort des Bitmaps die Rot/Grün/Blau-Werte ausgelesen.
Ich gebe die X/Y-Werte, bei denen ich die Farbwerte angezeigt bekommen möchte manuell ein.
Nun möchte ich gern, das nach Eingabe der Werte der Mauszeiger auf die Position des TImage springt, die den X/Y-Werten entspricht. Leider weiß ich noch nicht so genau, wie das funktionieren soll.
-
SetCursorPos(x,y);
-
Die Funktion SetCursorPos() habe ich auch schon gefunden. Das Problem daran ist aber, dass die X/Y Werte für den Kompletten Desktop gelten. Ich möchte aber den Cursor auf Relativwerte des TImage beziehen.
-
Wo ist das Problem? Du weißt, wo deine MainForm liegt und du weißt, wo das Image Liegt...
SetCursorPos(Form1->Left+Image1->Left,Form1->Top+Image1->Top);
-
Ja. Hab jetzt mein Problem gefunden. Hab mit Image1->Top gearbeitet. Da dieses jedoch in Form1 liegt, musste ich mit Form1->Top arbeiten. jetzt klappts. Manchmal sollte man besser mehr denken.

-
Dafür gibt's auch ClientToScreen().