2008-11-14 24 views
11

Estoy tratando de mostrar una sugerencia personalizada en un TWinControl, pero no puedo encontrar la forma de obtener su posición.¿Cómo puedo obtener la posición X, Y de un TWinControl (relativo a la pantalla)

El uso de la posición 0,0 muestra la sugerencia en la parte superior de la pantalla (fuera de la ventana), así que supongo que debe ser la posición del control en la pantalla.

Editar:

he encontrado el TControl Propiedad ClientOrigin que devuelve lo que he esperaba, ¿es correcto utilizar ClientOrigin.X y ClientOrigin.Y?

Respuesta

32

TControl.ClientToScreen le da las coordenadas de pantalla para un punto determinado dentro del control.

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

+1 por esperar 2 segundos más rápido que yo ;-). –

+0

¡Lo tomaré! :) –

+0

['Point'] (http://www.delphibasics.co.uk/RTL.asp?Name=Point) - Delphi tiene una política realmente extraña para nombrar funciones globales ;-) – Wolf

Cuestiones relacionadas