Página 1 de 1

centrar panel al iniciar form

Publicado: Vie Dic 16, 2022 10:28 pm
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,

Re: centrar panel al iniciar form

Publicado: Lun Dic 19, 2022 10:02 am
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

Re: centrar panel al iniciar form

Publicado: Lun Dic 19, 2022 4:09 pm
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,