Autor Beitrag
Adrian
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 314



BeitragVerfasst: Mi 22.10.03 16:21 
Servus!

Auf meinem Formular befindet sich ein dynamisch erzeugtes TImage, in die eine Bitmap aus der Resourcen-Datei geladen wird. Ich möchte nun beim Anklicken bestimmter Stellen verschiedene Aktionen ausführen, wobei programmbedingt die "Zielfläche" sehr klein ist - um genau zu sein exakt 3x3 Pixel. Bei den ersten Versuchen stellte ich fest, daß die zurückgegebenen Koordinaten erheblich von der Stelle abwichen, an der sich die Cursorspitze befand. In X-Richtung waren es 10, in Y-Richtung 78 Pixel, bzw. Koordinatenpukte, die Differenz scheint aber rechnerabhängig zu sein.
Zur Verdeutlichung mal ein wenig Code:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
// Erzeugen des Image und Laden der Vorlage
  Buidl:=TImage.Create(self);
  with Buidl do
  begin
    Parent:=Form1;
    Left:=5;
    Top:=30;
    Width:=1014;
    Height:=433;
    Picture.Bitmap.LoadFromResourceName(HInstance,'DIAGRAMM');
  end;

// Abfragen der Cursorposition
  with Buidl do
  begin
    GetCursorPos(MausPosition);
  end;

Das Programm soll auch bei kleinen Bildschirmauflösungen laufen (mit Scrollbalken) und natürlich soll dort auch der Aufruf der Aktionen an der selben Stelle stattfinden. Ich vermute ein wenig, daß GetCursorPos nicht auf das Image, sondern auf Form1 bezogen ist. Kennt sich jemand aus, ob das so ist, oder warum der MausPosition-Wert von der tatsächlichen Cursorstellung abweicht?

Gruß,

Adrian


Zuletzt bearbeitet von Adrian am Do 23.10.03 09:48, insgesamt 1-mal bearbeitet
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mi 22.10.03 16:27 
GetCursorPos ist Screen-bezogen.
Es gibt eine Func, die das umrechnet, aber die fällt mir gerade ncht ein.. (Suche in: Delphi-Forum, Delphi-Library SCREENTOCLIENT?)

Ansonsten kannst du das mit OnMouseMove machen.
Adrian Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 314



BeitragVerfasst: Do 23.10.03 09:48 
Servus!

@ obbschtkuche: ScreenToClient stimmt, jetzt funktioniert alles. Danke.

Gruß,

Adrian