Archivo de la categoría: Xailer 5

Novedades de Xailer 5 (V)

Estimados usuarios,

En este nuevo artículo quiero presentaros los nuevos controles que he realizado para mejorar la edición desde Xailer y adaptarlos a Windows 10 y su uso con tabletas. El control original de Windows adolece de varios problemas, que son:

  • Imposibilidad de centrar su texto verticalmente en su marco contenedor, lo cual obligaba a cambiar el font según el alto del control para adaptarlo más o menos.
  • Imposibilidad de cambiar el estilo ‘contraseña’ una vez creado el control
  • Imposibilidad de cambiar completamente su marco

Además, en Windows 10 podemos observar como existen nuevas funcionalidades en algunos controles de edición, como:

  • Un texto de ayuda cuando el control está vació
  • Una imagen de una lupa para disparar una búsqueda
  • Una imagen para borrar el contenido del control (muy útil con tabletas)
  • Una imagen para mostrar el contenido de un control de edición tipo contraseña

Todas estas nuevas funcionalidades se han incorporado en dos nuevos controles de nombre TEditMod y TMemoMod, que por supuesto tienen sus equivalentes como DataControls TDbEditMod y TDbMemoMod. Os dejo una imagen de los mismos:

TEdiMod y TMemoMod

TEdiMod y TMemoMod


El pintado de las distintas imágenes que muestra el control es completamente vectorial utilizando técnicas de ‘antialiasing’ que incorpora GDI+.

Espero que los nuevos controles sean de vuestro agrado. ¡Hasta muy pronto!

Un cordial saludo

Ignacio Ortiz de Zúñiga
Equipo de Xailer

Novedades de Xailer 5 (IV)

Estimados usuarios de Xailer,

Cuarta entrega de las mejoras que incluirá Xailer 5, y está es muy importante y casi indispensable si pensáis hacer aplicaciones para tabletas con Windows 10 como SO. Es un control que existe en Xailer desde el principio y se basa en un control nativo de Windows pero siempre hemos querido deshacernos de él debido a sus limitaciones y es el control ‘TTabControl‘ y su heredado ‘TFolder‘.

El nuevo control de nombre ‘TTabs’ incluye toda la funcionalidad del control nativo, pero además incluye las siguientes mejoras:

  • Cualquier orientación (con visualización correcta)
  • Alto y ancho de las pestañas parametrizable
  • Pestaña fantasma para que el usuario puede incluir más pestañas
  • Posibilidad de mover las pestañas por el usuario final
  • Bordes de pestañas personalizables
  • Absoluta ausencia de cualquier tipo de parpadeo

TTabs 1

El nuevo control TTabs además permite atrapar sus eventos de pintado de una forma sencilla y de esta forma cambiar completamente la apariencia del control. Con este simple código:

METHOD Tabs1DrawTab( oSender, nIndex, cText, nImage, nClrText, nClrPane, nState, hDC, aRect ) CLASS TForm1

LOCAL hBrush
LOCAL aColors := {0x737373, 0x4986E7, 0x16A765, 0xE9B330, 0xA479E2}

 IF (nState == tsHOT .OR. nState == tsSELECTED) .AND. nIndex > 0
  nImage += 5
  hBrush := CreateSolidBrush( aColors[ nIndex ] )
  FillRect( hDC, { aRect[ rtLEFT ], aRect[ rtTOP ], aRect[ rtRIGHT ], aRect[ rtTOP ] + 2 }, hBrush )
  DeleteObject( hBrush )
  aRect[ rtTOP ] += 2
 ENDIF

RETURN Nil

Conseguimos este efecto: (Quizás os recuerde a algo ;-))

TTabs 2

Para Xailer 5 he desarrollado un total de diez nuevos controles pensando sobre todo en el nuevo aspecto visual que impone Windows 10 y en la necesidad de tener controles optimizados para su uso en tabletas. Entendemos que son controles de uso avanzado y por dicho motivo sólo estarán presentes en la versión Enterprise de Xailer. Os animamos a que deis el salto a Enterprise cuanto antes. Las ventajas son muchas, pero sin duda la más importante, es la de poder utilizar servidores de bases de datos directamente sin ningún tipo de conector como ADO u ODBC.

Un cordial saludo

Ignacio Ortiz de Zúñiga
Miembro del equipo de Xailer
http://www.xailer.com

Novedades de Xailer 5 (III)

Hola a todos,

Hoy os comento otra mejora del IDE que entiendo que es bastante útil y consiste en la posibilidad de realizar búsquedas incrementales en los propios resultados de búsqueda ofrecidos por el IDE cuando se realiza una búsqueda masiva. En la nueva versión de Xailer cuando se realiza una búsqueda masiva podréis ver un nuevo icono en la ventana de mensajes:

Búsqueda en búsqueda

Búsqueda en búsqueda


Cuando pulsemos este nuevo botón podremos realizar una búsqueda incremental sobre los resultados de búsqueda obtenidos. El sistema de búsqueda es incremental y empieza a actuar en cuanto estamos más de medio segundo sin introducir ningún carácter. Espero que os guste.
Resultados de búsqueda en búsqueda

Resultados de búsqueda en búsqueda


¡Ya queda menos para la salida de Xailer 5!

Los siguientes artículos serán mucho más importantes e interesantes; abordaremos los diez nuevos controles que incluye Xailer 5 y la nueva herramienta de control de versiones local que además es totalmente compatible con el uso de control de versiones externo, como SVN o CVS.

Un saludo a todos.

Ignacio Ortiz de Zúñiga
Equipo de Xailer

Novedades de Xailer 5 (II)

Estimados usuarios de Xailer,

Hoy os quiero hablar del control TListView. Ese gran desconocido 😉 Este control es propio del API de Windows y básicamente es un Browse que permite mostrar la información de la misma forma que lo muestra el explorador de archivos del propio Windows. Posee los siguientes tipos de vista: Icon, SmallIcon, List, Tile y Details.

El Browse (TBrowse y sus heredados) que incorpora Xailer se parece a un TListView con vista ‘Details’. Cuando queremos mostrar la información de esa forma, estilo rejilla, el browse de Xailer es infinitamente más potente que TListView. Sin embargo, hay ocasiones en la que el TListView puede ser mejor candidato para los datos a mostrar. Obviamente cuando por el número de elementos a mostrar una vista del tipo distinto de ‘Details’ sea más adecuada, pero también puede ser un gran candidato cuando necesitemos agrupar los distintos elementos del browse o mostrar un ‘checkbox’ en cada uno de ellos.

TListview with groups

TListview with groups

Hasta Xailer 5 el control estaba bastante limitado ya que no se podía personalizar casi nada, pero ahora ha mejorada completamente su funcionalidad permitiendo hacer cosas como esta:

TListView OnDrawCell

TListView OnDrawCell

Y este ha sido todo el código necesario para conseguirlo:

METHOD ListView1DrawCell( oSender, oItem, nColumn, nClrText, nClrPane, hDC, aRect ) CLASS TForm1
   LOCAL nWidth

   IF nColumn == 0
      RETURN 0 // Notify columns one by one
   ELSEIF nColumn == 1
      SelectObject( hDC, ::oFontBold:Handle )
   ELSE
     SelectObject( hDC, ::oFont:Handle )
     IF nColumn == 5
        InflateRect( aRect, -1, -1 )
        nWidth := Int( ( aRect[ 3 ] - aRect[ 1 ] ) * oItem:aData[ 4 ] / ::nMaxSize )
        aRect[ 3 ] := aRect[ 1 ] + nWidth
        FillRect( hDC, aRect, ::oBrushGauge:Handle )
       RETURN 2 // Do not paint anything
     ENDIF
   ENDIF
RETURN Nil

Como veis toda su consigue sobrecargando su evento OnDrawCell que es muy fácil de hacer. Espero que os guste esta importante mejora que he realizado al control. Os animo a que empecéis a usar el control TListView cuanto antes.

Un saludo

Ignacio Ortiz de Zúñiga
Equipo de Xailer

Novedades de Xailer 5 (I)

Estimados usuarios de Xailer,

Par ir abriendo boca me gustaría en una serie de artículos ir contando poco a poco las mejoras que personalmente he incorporado al futuro Xailer 5. Desde las más nimias a las más importantes y sin ningún tipo de orden preestablecido.

En esta primera ocasión os comentaré las mejoras incorporadas a la barra de filtrado (Filter bar) de los browses. Estoy seguro de que más de uno va a suspirar un ¡¡Por fin!! 😉 Estas son:

  • Posibilidad de acceder a la barra de filtrado simplemente pulsando tecla de cursor arriba desde el primer registro del Browse.
  • Posibilidad de navegar entre los distintos campos de filtrado con las teclas TAB y May+TAB
  • Posibilidad de forzar el filtrado inmediato y retornar el foco al browse pulsando tecla de cursor abajo desde cualquier campo de edición de la filterbar.

Cuando usemos la barra de filtrado del TDbBrowse en conjunción con un objeto TMemDataset se abren importantes mejoras dignas de mención:

  • Posibilidad de establecer un rango utilizando la secuencia ‘ (2 guiones)’. Por ejemplo: 2–8, que significaría valores entre 2 y 8 inclusive.
  • Utilización de operadores lógicos: ‘&&‘ para Y y ‘||‘ para O. Por ejemplo: 1 || 3, que significaría valores 1 ó 3

Espero que os haya gustado. Estar atentos a futuros artículos. Gracias por vuestra atención.

Un cordial saludo,

Ignacio Ortiz de Zúñiga
Equipo de Xailer