How can I get the X,Y position of a TWinControl (relative to the screen)

Fabio Gomes picture Fabio Gomes · Nov 14, 2008 · Viewed 23.4k times · Source

I'm trying to show a custom hint in a TWinControl but I can't figure out how to get it's position.

Using position 0,0 shows the hint on the top of my screen (outside the window) so I guess it must be the position of the control on the screen.

Edit:

I've found the TControl Property ClientOrigin which returns what I've expected, is it correct to use ClientOrigin.X and ClientOrigin.Y?

Answer

Bruce McGee picture Bruce McGee · Nov 14, 2008

TControl.ClientToScreen gives you the screen coordinates for a given point within the control.

lPoint := Panel1.ClientToScreen(Point(0,0));
Label1.Caption := Format('Screen: %d, %d', [lPoint.X, lPoint.Y]);