Hola Antonio:
He probado la funcion que publicastes aqui en el foro para generar un gradient en el xBrowse estilo Windows 7, el efecto es super bonito, pero tiene un fallo que no se solucionar. Cuando el campo a mostrar en el Browse no contiene informacion no generar el gradient en ese campo, y tambien tiene el mismo defecto cuando el ultimo campo declarado en el xBrowse no llega al final del tamaño del xBrowse, muestra la barra por defecto sin el gradient. Probado en una Windows MDI.
NOTA: No he subido una imagen porque todavia estoy actualizando los programas para Windows 7, ya que no funciona nada de lo que tenia, ahora necesito un FTP para Windows 7. Para la proxima duda/error intentare poner una imagen que vale mas que mil palabras.
Si algun prueba esto, que uno de los campos de la B.D que no tenga informacion para ver el efecto.
Espero que me haya explicado correctamente.
// Para Gradient estilo Windows 7
oGrid:nRowDividerStyle = LINESTYLE_NOLINES
oGrid:nColDividerStyle = LINESTYLE_NOLINES
oGrid:nMarqueeStyle = MARQSTYLE_HIGHLROW
oGrid:lTransparent = .T.
Despues de la declaracion del xBrowse:
* Metodo 1: Gradient para Windows 7
AEval( oGrid:aCols, { | oCol | oCol:bPaintText := { | oCol, hDC, cData, aRect | ;
PaintCol( oCol, hDC, cData, aRect ) } } )
Funcion:
static function PaintCol( oCol, hDC, cData, aRect )
if oCol:oBrw:VGetPos() == Especies->( OrdKeyNo() )
GradientFill( hDC, aRect[ 1 ] - 2, aRect[ 2 ] - 3, aRect[ 3 ] + 1, aRect[ 4 ] + 5,;
{ { 1, RGB( 220, 235, 252 ), RGB( 193, 219, 252 ) } }, .T. )
RoundBox( hDC, 2, aRect[ 1 ] - 1, WndWidth( oCol:oBrw:hWnd ) - 22, aRect[ 3 ] + 1, 2, 2,;
RGB( 235, 244, 253 ), 1 )
RoundBox( hDC, 1, aRect[ 1 ] - 2, WndWidth( oCol:oBrw:hWnd ) - 21, aRect[ 3 ] + 2, 2, 2,;
RGB( 125, 162, 206 ), 1 )
endif
SetTextColor( hDC, 0 )
DrawTextEx( hDC, cData, aRect, oCol:nDataStyle )
Return nil
Un saludo
JLL