Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: screenToClient liefert komische Werte

  Alt 6. Mai 2010, 22:09
Nein. Die Funktion interpretiert (0,0) als Bildschirmkoordinate, und gibt dir diese relativ zu (Image.Left, Image.Top).

Ein Image ist schon ein bischen komplizierter, aber tun wir das mal:

Annahmen:
Image.Top = 80
Image.Left = 100

Image liegt auf Form (und nicht innerhalb eines weiteren Panels oder sonstiges, einfach nackt aufm Form).

Form.Top = 50
Form.Left = 250

Image.ScreenToClient(Point(0,0)) gibt dann einen Point: TPoint zurück:
Point.X = 0-80-50 = -130
Point.Y = 0-100-250 = -350

Zu interpretieren als: Bildschirmpunkt (0,0) liegt 130 Pixel links vom, und 350 Pixel oberhalb der oberen linken Ecke von Image.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat