Page 1 of 1

mostrar colores en xbrowse sin bitmaps

Posted: Fri Feb 02, 2007 8:42 am
by José Luis Sánchez
Hola:
En un mantenimiendo de un fichero de categorias, quiero asignar a cada categoría un color para luego mostrar gráficos con ese color. La selección de color en el formulario que edita la categoría es facil de hacer: pongo un botón que llama a la función ChooseColor donde selecciono el color y luego al bitmap le pongo oBmp:SetColor(color, color) y listo.
Ahora quiero que en cada linea del xbrowse me aparezca el color que he seleccionado. Evidantemente no puedo tener un bitmap de cada posible color que elija en usuario, para mostrar en el xbrowse. Asi que necesito crear un bmp por código de unos 16*16, asignarle un color y mostrarlo en el xbrowse.

¿ Alguna idea de como atacar esto ?

Saludos,

Posted: Fri Feb 02, 2007 9:06 am
by José Luis Sánchez
Es mucho más facil que esto. Simplemente me creo una columna y nuestro 3 blancos y le pongo el fondo del color que me interesa.

Y yo pensando en bitmaps virtuales. Mira que me complico a veces la vida.

Hay dias en que uno no está para nada...

Hola José Luis

Posted: Sat Feb 03, 2007 6:28 am
by AIDA
Hola

Disculpa que te pregunte algo fuera del tema que propones

no eh podido hacer que se refresque el XBrowse

si pongo Refresh() me sale un error :shock: y se truena el programa :cry: no se por que :?: antes funcionaba muy bien con listbox

asi lo tengo al final de guardar datos en la base de datos

oSoC:UpStable()
oSoC:Refresh()

me podrias ayudar

Gracias :wink:

Aida

Posted: Sat Feb 03, 2007 10:45 am
by Rochinha
Amigo

Adapta o ejemplo:

Code: Select all

nNumeroDaColunaAColorar := 2
...
                    oTBLLbx:bTextColor    := {|nRow,nCol| CLR_BLACK }
                    oTBLLbx:bbkColor      := {|nRow,nCol| PintaCelula(nRow,nCol,DBF->CAMPO,nNumeroDaColunaAColorar) }
...

Function PintaCelula( _nRow_, _nCol_, _status_, _qCol_ )
   Local nCor := nRGB(255,255,255)
   if _nRow_ > 0
      do case
         case _status_ = "V"
              if _nCol_ = _qCol_
                 nCor = nRGB( 236,253,255 ) // CLR_AZULADITO   
              endif
         case _status_ = "A"
              if _nCol_ = _qCol_
                 nCor = nRGB( 234,255,229 ) // CLR_VERDEAGUA
              endif
         case _status_ = "R"
              if _nCol_ = _qCol_
                 nCor = nRGB( 255,238,238 ) // CLR_VENCIDOS
              endif
      endcase
   endif
   return nCor