Archivo por meses: Octubre 2014

¡Migrar a SQL ya!

Estimados usuarios de Xailer,

Espero que con el título de este artículo haya conseguido llamaros la atención 😉 El motivo del mismo es debido a que a pesar del gran esfuerzo que hemos realizado para dar soporte a otros motores de bases de datos mucho más potentes que nuestros obsoletos DBF, seguimos observando que la mayoría de vosotros seguís anclados en los DBFs.  A pesar de que alguno le parezca una burrada lo que voy a decir, yo personalmente comparo el sistema de archivos DBF con la máquina escribir. Funcionar, funcionan, pero donde esté el más simple tratamiento de textos que se quite cualquier máquina de escribir. Las máquinas de escribir son máquinas del pasado y están bien en una almoneda, pero poco más.  Me temo que los DBFs ni siquiera tienen sitio en alguna parte.  Soy un enamorado del lenguaje xBase, pero me temo que su sistema nativo de archivos está muy superado. Sigue leyendo

Centrado de ventanas

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