Page 2 of 2

PostPosted: Wed Aug 01, 2007 8:23 pm
by jose_murugosa
RF wrote:Ok, para todos ustedes, este es el secreto:

Como todo en FiveWin, son "efectos especiales", y en realidad, nada es lo que parece.

1) Necesitamos el Browse de Hernan, cualquier versión, (el truco funciona tambén con xBrowse) para mayor información sobre los browses de FW, les recomiendo que lean mi articulo "Browse VS Browse" en www.google.blogspot.com.

2) Es raro que el titulo de una cabecera cambie, asi que en realidad, lo que están viendo mis queridos amigos, es un bitmap que incluye el texto y la imagen, en realidad son 4 bitmap, 2 incluyen la imagen "habilitada" y 2 la imagen "deshabilitada":

Image


El color del fondo es lo de menos, recuerden que FW utiliza el byte 1,1 para definir el color de la transparencia

3) Antes de definir el browse, cargamos los bitmaps en la memoria:

Code: Select all  Expand view
hBmp1 := LoadBitmap(GETRESOURCES(),"HEADER1"))
hBmp2 := LoadBitmap(GETRESOURCES(),"HEADER2"))
hBmp3 := LoadBitmap(GETRESOURCES(),"HEADER3"))
hBmp4 := LoadBitmap(GETRESOURCES(),"HEADER4"))


4) Definimos el browse como se hace normalmente:

Code: Select all  Expand view
@ 0,205 LISTBOX oBrw FIELDS ....


5) Definimos sus headers:

Code: Select all  Expand view
oBrw:aHeaders := {" ",hBmp1,hBmp3,"Tipo","SubTipo","Naturaleza"}


6) y luego para cambiar dinamicamente los headers con su respectivo bitmap en tiempo de ejecucion:

Code: Select all  Expand view
oBrw:aActions :={{|| NIL},{|x| CamHeader(x,1)},{|x| CamHeader(x,2)}}


7) la función CamHeader(<oBrw>,<nOrden>):
Code: Select all  Expand view
FUNCTION CamHeader(oBrw,nIndex)
   IF nIndex == 1
      (oBrw:cAlias)->(OrdSetFocus('numcuenta'))
//aqui viene la magia, volvemos apintar el header completo, cambiando los bmps del header
      oBrw:aHeaders := {" ",hBmp1,hBmp3,'Tipo','SubTipo','Naturaleza'}
   ELSE
      (oBrw:cAlias)->(OrdSetFocus('nomcta'))
      oBrw:aHeaders := {" ",hBmp2,hBmp4,'Tipo','SubTipo','Naturaleza'}
   ENDIF
   oBrw:Refresh()
RETURN (.T.)



Y eso es todo.


Muchas gracias René por compartir tus ideas y técnicas con nosotros, en particular para mí, esto es una obra de arte y es bueno saber que se puede contar con ti generosidad para compartira con los miembros de esta comunidad.

PostPosted: Wed Aug 01, 2007 9:18 pm
by Francisco Horta
Gracias rene, mas que bien, como simpre la solucion.
salu2
paco