Registriert seit: 23. Jan 2008
3.686 Beiträge
Delphi 2007 Enterprise
|
Re: screenToClient liefert komische Werte
6. Mai 2010, 23: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)
|