Estimados usuarios de Xailer,
Los formulario de Xailer tienen una propiedad de nombre lCentered que permite indicar si la ventana ha de mostrarse centrada o no. El centrado se produce con la totalidad de la pantalla y si el usuario tiene dos monitores, se centro en el monitor donde se está ejecutando la aplicación. No obstante, están proliferando monitores cada vez más grandes y sobre todo más anchos y la visualización centrada en el monitor puede no ser la correcta.
Os vamos a mostrar un pequeño truco, -que además servirá para entender algo más la sobrecarga de clases de Xailer-, para centrar la ventana sobre su formulario padre. Este es el código:
CLASS TForm FROM XForm
METHOD Show( nCmdShow, lCenter )
END CLASS
METHOD Show( nCmdShow, lCenter ) CLASS TForm
LOCAL nDifW, nDifH
DEFAULT lCenter TO ::lCentered
IF lCenter .AND. ::oParent:IsKindOf( "TForm" )
nDifW := Max( (::oParent:nWidth - ::nWidth) / 2, 0 )
nDifH := Max( (::oParent:nHeight - ::nHeight) / 2, 0 )
::nLeft := ::oParent:nLeft + nDifW
::nTop := ::oParent:nTop + nDifH
ENDIF
::Super:Show( nCmdShow, .f. )
RETURN Nil
Basta con poner este código en cualquier parte de su código y a partir de entonces los formularios que tengan la propiedad lCentered a verdadero se mostrarán centrados respecto a su formulario padre y no con respecto al monitor. Espero que os haya gustado.
Un saludo