Page 1 of 1

WBrowse - color fondo cabecera y Congelar columnas- consulta

PostPosted: Thu Mar 16, 2023 9:07 pm
by José
Hola a todos, un gusto estar por acá de nuevo.

Directo al tema, en mi versión de FWH 21.06 y HB 3.2, con WBrowse no puedo poner color de fondo diferente a una cabecera, ni congelar columnas a la izquierda.

He leído publicaciones de años anteriores que dicen que no está incluido.

¿Definitivamente no se puede? ¿tampoco si migro a las versiones más recientes de FWH? ¿alguna sugerencia (ojalá con algún ejemplo) para resolver o reemplazar o simular eso?.

Nota. Uso también XBrowse, y tiene esos dos recursos, pero es muy lento con xBase en red, y en esta etapa estoy obligado a usar eso (primer paso de la migración, el segundo paso es llevar todo a MySQL/MaríaDB)

Agradezco cualquier orientación o ayuda, y si hay algo en que pueda yo servir, estoy a disposición.

Saludos desde Chile

Re: WBrowse - color fondo cabecera y Congelar columnas- consulta

PostPosted: Fri Mar 17, 2023 3:10 pm
by karinha

Re: WBrowse - color fondo cabecera y Congelar columnas- consulta

PostPosted: Fri Mar 17, 2023 4:23 pm
by José
Hola y gracias Karinha por responder,

Pero WBrowse de FWH 21.06 no considera nFreeze en su DATA, y en sus métodos GoLeft y GoRight no existe código para manejar filas congeladas.

Sigo atento y también buscando opciones.

Saludos

Re: WBrowse - color fondo cabecera y Congelar columnas- consulta

PostPosted: Fri Mar 17, 2023 4:50 pm
by karinha
José, WBrowse.prg original de FWH? Freeze no funciona en esta versión? certezca? Que lástima. entoces, cambia a XBROWSE() del maestro Nages ó intenta con TCBROWSE() para veer se funciona bién.

Regards, saludos.

Re: WBrowse - color fondo cabecera y Congelar columnas- consulta

PostPosted: Tue Mar 21, 2023 2:33 am
by José
Amigos, hola

Por si a alguien le sirve la solución, y si es correcto plantearla, resolví de la siguiente forma:

Color de fondo diferente para la cabecera de columna de ordenamiento actual (WBrowse.prg)
.....
if ! lTree
if nRowPos == 0
if ! IsAppThemed()
WndBox( hDC, nTop - 1, nLeft - 1, nBottom, nRight )
WndBoxRaised( hDC, nTop, nLeft, nBottom - 1, nRight - 1 )
---> José Concha, desde aquí mí código <---
if n == nColuAct --> (si es orden natural o si es otro oBrw variable nColuAct debe venir en cero)
hBrush = CreateSolidBrush( CLR_BRWHS )
FillRect( hDC, { nTop, nLeft, nBottom, nRight }, hBrush )
DeleteObject( hBrush )
SetBkColor( hDC, CLR_BRWHS )
if aJustify != nil .and. aJustify[ n ]
SetTextAlign( hDC, TA_RIGHT )
ExtTextOut( hDC, nTop, nRight - 2, { nTop, nLeft, nBottom, nRight }, cValToChar( aValues[ n ] ) )
else
SetTextAlign( hDC, TA_LEFT )
ExtTextOut( hDC, nTop, nLeft + 2, { nTop, nLeft, nBottom, nRight }, cValToChar( aValues[ n ] ) )
endif
SetBkColor( hDC, If( ValType( nClrPane ) == "B", nClrPane := Eval( nClrPane ), nClrPane ) )
endif
----> Fin mi código <----
endif
else
do case
case nLineStyle == LINES_BLACK
.....

Me ha funcionado perfecto. Si hay una forma mejor o más profesional, quedo atento.

Saludos

Re: WBrowse - color fondo cabecera y Congelar columnas- consulta

PostPosted: Tue Mar 21, 2023 11:39 am
by karinha
¿Qué método de wBrowse.prg modificaste José?

Regards, saludos.

Re: WBrowse - color fondo cabecera y Congelar columnas- consulta

PostPosted: Tue Mar 21, 2023 1:54 pm
by José
Hola Karinha

Buena pregunta, debí especificarlo...

static function wBrwLine, que es donde se controla eso.

Saludos