Cuál es la forma correcta de determinar la posicion en pantalla
Publicado: Mar Oct 09, 2012 3:54 pm
Estimados amigos
Tengo un formulario como el ejemplo que les muestro en la imagen anexa.
Deseo conocer cual es la forma correcta de determinar las coordenadas
relativas de un control en la pantalla (en el ejemplo un TEdit), con la
intención de posicionar debajo de el otro formulario, similar a como lo
hace un Tooltip.
Anteriormente habia logrado hacerlo de la siguiente forma
hWnd := GetActiveWindow()
nLeft := oSender:oParent:nLeft + oSender:nLeft
nTop := oSender:oParent:nTop + oSender:nTop + oSender:nHeight
ClientToScreen( hWnd, @nLeft, @nTop )
WITH OBJECT GenericPicker()
:New()
:nTop := nTop
:nLeft := nLeft
:ShowModal()
xValue := :uUserChoice
END
sin embargo en este momento no me funciona.
He notado a través del debugger que el handle de la ventana activa que
me devuelve GetActiveWindow() corresponde al de la ventana principal de
la aplicacion y no a la ventana MDICHILD que es la que muestro en el
ejemplo.
Cuál es la manera correcta de hacer esto teniendo presente que trabajo
con formularios MDI
Gracias por su ayuda
Saludos cordiales
Williams Pacheco
--
Tengo un formulario como el ejemplo que les muestro en la imagen anexa.
Deseo conocer cual es la forma correcta de determinar las coordenadas
relativas de un control en la pantalla (en el ejemplo un TEdit), con la
intención de posicionar debajo de el otro formulario, similar a como lo
hace un Tooltip.
Anteriormente habia logrado hacerlo de la siguiente forma
hWnd := GetActiveWindow()
nLeft := oSender:oParent:nLeft + oSender:nLeft
nTop := oSender:oParent:nTop + oSender:nTop + oSender:nHeight
ClientToScreen( hWnd, @nLeft, @nTop )
WITH OBJECT GenericPicker()
:New()
:nTop := nTop
:nLeft := nLeft
:ShowModal()
xValue := :uUserChoice
END
sin embargo en este momento no me funciona.
He notado a través del debugger que el handle de la ventana activa que
me devuelve GetActiveWindow() corresponde al de la ventana principal de
la aplicacion y no a la ventana MDICHILD que es la que muestro en el
ejemplo.
Cuál es la manera correcta de hacer esto teniendo presente que trabajo
con formularios MDI
Gracias por su ayuda
Saludos cordiales
Williams Pacheco
--