FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Antonio: Defecto en Gradient en Windows 7
Posts: 408
Joined: Fri Jan 29, 2010 08:14 PM
Antonio: Defecto en Gradient en Windows 7
Posted: Tue Feb 23, 2010 12:27 PM

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

Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
Posts: 408
Joined: Fri Jan 29, 2010 08:14 PM
Re: Antonio: Defecto en Gradient en Windows 7
Posted: Tue Feb 23, 2010 12:47 PM
Aqui esta la Imagen:



un saludo
JLL
Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
Posts: 564
Joined: Thu Oct 13, 2005 09:23 AM
Re: Antonio: Defecto en Gradient en Windows 7
Posted: Mon Aug 16, 2010 07:51 AM

Hola,
Yo tengo el mismo problema y la verdad es que no se como resolverlo. Yo creo que el efecto de rejilla a la Windows 7 se obtiene más por los dos rebordes de la fila seleccionada, el interior blanco y el exterior azul que por el gradiente en sí. Y creo que nos estamos complicando la vida al intentar usar el método bPaintText. Estoy viendo la manera de pintar los rebordes en el método Paint() de la clase XBrowse, igual que se pinta el selector de fila cuando se ha terminado de pintar todas las columnas pintar los dos rebordes. Si lo consigo lo publicaré en el foro, y si alguien lo ha hecho así o tiene idea de cómo hacerlo agradecería que lo publicara.
Saludos,
José Luis

Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Antonio: Defecto en Gradient en Windows 7
Posted: Mon Aug 16, 2010 10:22 AM
jll-fwh, Jose Luis

jll-fwh
El punto ya los has tratado y te di la solucion para tu version, pero no se si la aplicaste correctamente, verifica nuevamente este hilo
http://forums.fivetechsupport.com/viewtopic.php?p=95369#p95369

Ponle atencion al punto para tu version
http://forums.fivetechsupport.com/viewtopic.php?p=95709#p95709

Jose luis verifica el primer link y sigue el hilo

el unico problema que no se ha solucionado y por la logica de pintado del xbrowse no tiene solucion por ahora, es el uso de bitmap junto con el gradient
Posts: 564
Joined: Thu Oct 13, 2005 09:23 AM
Re: Antonio: Defecto en Gradient en Windows 7
Posted: Mon Aug 16, 2010 02:12 PM

Hola,
Gracias de nuevo por la solución. He estado probando en un par de aplicaciones, y los bitmaps se ven bien con el gradiente. Uso bitmaps normales, no alphablended, porque mi versión de FWH es un tanto antigua.
Saludos,
José Luis

Continue the discussion