In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

centrar panel al iniciar form

Foro de Xailer profesional en español
Responder
Avatar de Usuario
gerencia
Mensajes: 282
Registrado: Sab Jun 20, 2009 6:01 pm

centrar panel al iniciar form

Mensaje por gerencia »

Una pequeña ayuda,

Como centrar el panel(::opanel1) que contiene la información del usuario al inicializar el form.

Me imagino que sería en el metodo FormInitialize, pero como calcular las posiciones del ::oPanel1 en este
caso que es el que contiene todos los controles ?

Imagen

Saludos,
Jose David Angulo Urzola
Auditoria y Sistemas Ltda.
Cartagena-Colombia
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: centrar panel al iniciar form

Mensaje por ignacio »

Buenos días,

En el evento OnInitialize puede cambiar las coordenadas de cualquier control. Si el formulario se puede redimensionar, lo más adecuado es que utilice el evento OnResize() que incluso recibe como parámetros las nuevas coordenadas.

Per sin duda, la mejor forma de hacerlo es poner la propiedat TBevel:nAlign a alCLIENT y luego jugar con las propiedades del TBevel: nAlignMarginBottom, ..Left, ..Right y ..Top

Saludos
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
gerencia
Mensajes: 282
Registrado: Sab Jun 20, 2009 6:01 pm

Re: centrar panel al iniciar form

Mensaje por gerencia »

Comparto el codigo para quien lo necesite.
//------------------------------------------------------------------------------
METHOD FormSize( oSender, nSizeType, nClientWidth, nClientHeight ) CLASS Texample

*/ Calculo las coordenadas de acuerdo al tamaño de la pantalla principal */

::oPanel1:nleft:=Round( (nClientWidth -::oPanel1:nWidth)/2 ,0)
::oPanel1:nTop :=Round( (nClientHeight-::oPanel1:nHeight)/2,0)

*/ Apago el control para moverlo */

::oPanel1:lVisible:=.f.
*/ Lo retardo un poco para que se vea bien */
Sleep( 300 )

/* Enciendo el control*/

::oPanel1:lVisible:=.t.


RETURN Nil

Saludos,
Jose David Angulo Urzola
Auditoria y Sistemas Ltda.
Cartagena-Colombia
Responder