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

2 comentarios en “Novedades de Xailer 5 (II)

Responder a Bingen Cancelar la respuesta