PDA

Ver la Versión Completa : Obtener Parent para mi componente


diegofhernando
21-10-2004, 15:36:12
Hola gente del foro... mi problema es el siguiente: estoy desarrollando un componente q deriva del TDBEdit este contiene un boton y un TDBGrid, lo q hice fue algo como una lookup donde se pueden ver varias columnas, pues bien sucede q al usar el Parent del TDBEdit como Parent del TDBGrid si este es un panel por ejemplo la grilla solo se puede ver dentro de este panel... hmm necesito q esta grilla pueda ser visible dentro del form, de echo si es posible q pueda salir del form en caso d q estiviese por ejemplo muy abajo en el form no aparezca CORTADA la lista... bien espero me entiendan...

Como siempre les agradezco la colaboración y el tiempo q puedan dedicar a responder...

Salu2 :cool:

diegofhernando
22-10-2004, 18:28:16
Hola foro, bien luego de algunas (muchas) horas de consultar la ayuda de delphi encontre algo q me soluciona el problema, para obtener el "MAINPARENT" de mi compente use GetOwner (Bastante Obvio :D ), bien con esto puedo hacer q el parent de cualquier componente q cree en ejecucion se al form donde se encuentra, volviendo al tema de mi componente continuo con un lio y es como obtener la posicion dentro del form de un componente q se encuentra dentro de un contenedor como un panel, es decir si me refiero a la propiedad Left de un componente dentro de un panel no es la misma a la q deberia tener dentro del form, como obtengo esta propiedad, igual sucede con la propiedad top... necesitos estos valores pero equivalentes dentro del form...


Bien como siempre Salu2 :cool:

roman
22-10-2004, 18:57:00
Si la componente está a 5 pixeles del borde izquierdo del panel y el panel está a 9 pixeles del borde izquierdo del formulario entonces la componente está a 5 + 9 = 14 pixeles del borde izquierdo del formulario. De aquí puedes deducir la fórmula necesaria:

Izquierda respecto al form = Componente.Left + Panel.Left

Otra manera de hacerlo es usando el método ClientToScreen de la componente para convertir las coordenadas del TopLeft de la componente, relativas al panel, en coordenadas relativas a la pantalla, y luego el método ScreenToClient del formulario para convertir las coordenadas relativas a la pantalla en coordenadas relativas al formulario.

// Saludos

diegofhernando
25-10-2004, 15:18:10
Agradezco tu orientacion Roman, tu segunda opcion soluciono el problema... :)

Salu2... :cool: