Hallo, ich habe in meinen Programm die Canvas in meinen TImage in 9 Teile aufgeteilt (3x3 mit je 100x100 Pixeln).
Nun wollte ich wissen wenn man auf diese Canvas klickt, in welchen Bereich der Klick war.
Ich habe die Prozedur getCursorPos() und die Funktion Mouse.CursorPos.x/y gefunden.
Diese geben ja immer die Position gesehen vom gesamten Bildschirm an.
Deswegen habe ich nun folgenden Quelltext geschrieben:
Code:
...
getCursorPos(pos);
x := Pos.X;
x := x - Form1.Left;
x := x - (Form1.Width - ClientWidth);
y := Pos.y;
y := y - Form1.Top;
y := y - (Form1.Height - ClientHeight);
...
geht es auch einfacher?
Und noch was, ich habe mit einem Timer immer in 4 Labels die aktuellen x und y Werte einmal mit getCursorPos und einmal mit Mouse.CursorPos ausgelesen, dort standen auch immer die gleichen Werte, aber wenn ich für den Code oben Mouse.CursorPos verwendete bekam ich völlig andere (für mich nicht nachvollziebare) Werte, woran liegt das?