FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Color a celdas en xBrowse.
Posts: 601
Joined: Wed Jul 04, 2007 03:51 PM

Color a celdas en xBrowse.

Posted: Mon Mar 16, 2009 04:21 PM

Hola a todos...
Alguien me podría ayudar??
Necesito poner un color a una celda en xBrowse, la selda no es la misma que tiene el foco, es decir colocarle un color de fondo y un color al contenido segun una condición.
No a la fila completa, sino solo a la celda.
Desde ya muchas gracias.
Saludos, Esteban.

Ojeda Esteban Eduardo.

Buenos Aires - Argentina.

FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport

Skype: jreduojeda
Posts: 401
Joined: Thu Oct 06, 2005 10:15 PM

Re: Color a celdas en xBrowse.

Posted: Mon Mar 16, 2009 06:28 PM
Para el browse
Code (fw): Select all Collapse
 o:oBrw:bClrStd      := { || { CLR_BLACK, IF(( o:oBrw:nArrayAt )%2==0, nRgb(255, 255, 128), nRgb( 255, 255, 200 ) ) } }
   o:oBrw:bClrSel      := { || { CLR_BLACK, nRgb( 255, 000, 000 ) } }
   o:oBrw:bClrSelFocus := { || { CLR_WHITE, nRgb( 000, 000, 000 ) } }

Para una columna
Code (fw): Select all Collapse
  ::oBrw:aCols[10]:bClrStd      := {|| {CLR_WHITE, IF( ::oBrw:aArrayData[::oBrw:nArrayAt][10] < 0, nRgb(255, 000, 000), nRgb( 000, 000, 128 ) ) } }


Esto esta tomado de mi codigo a manera de ejemplo....
Saludos,



Pablo Alberto Vidal

/*

------------------------------------------------------

Harbour 3.2.0, Fivewin 17.02, BCC7

------------------------------------------------------

*/
Posts: 601
Joined: Wed Jul 04, 2007 03:51 PM

Re: Color a celdas en xBrowse.

Posted: Mon Mar 16, 2009 10:46 PM

Gracias por la respuesta, pero lo que yo necesito es poder poner de diferentes colores las celdas no la fila o columa completas.
El pintar o no pintar la celda depende de una condicion.
Muchas gracias por la ayuda.

Ojeda Esteban Eduardo.

Buenos Aires - Argentina.

FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport

Skype: jreduojeda
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM

Re: Color a celdas en xBrowse.

Posted: Mon Mar 16, 2009 11:49 PM
jrestojeda....

Aqui dejo un ejemplo sencillo

Code (fw): Select all Collapse
#include "fivewin.ch" 
#include "xbrowse.ch" 

    FUNCTION XBrowseArray()
    LOCAL oWin2
    local aArray := {}
    local olb2
    local n, j:=1
    local aRow := {}

      for n = 1 to 28
         if j > 7
            aadd( aArray, aRow )
            aRow := {}
            j = 1
         ENDIF
         aadd( aRow, n )
         j++
      next
     
       DEFINE WINDOW oWin2  TITLE "XBrowse Test"

       olB2:=TXBrowse():New( oWin2 )
       
       olB2:SetArray( aArray )
       olB2:lFastEdit := .t.
       
       for n = 1 to len( olB2:aCols )
          olB2:aCols[ n ]:bClrStd := gencolor( olB2, n )
          olB2:aCols[ n ]:nEditType = 1
       next
       
       olB2:createfromcode()
       
       oWin2:oClient := olB2

       ACTIVATE WINDOW oWin2

    return .t.
Function GenColor( olB2, n )
return {|| if ( oLb2:aRow[ n ] % 2 == 0, {CLR_BLACK,CLR_CYAN},{CLR_BLACK,CLR_WHITE} ) }
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM

Re: Color a celdas en xBrowse.

Posted: Tue Mar 17, 2009 03:34 AM
expongo esta otra tecnica...

haciendo doble click cambia el color de cada celda en particular, usa cell tooltip y se puede usar tambien para multi seleccion de celdas y no de filas

Code (fw): Select all Collapse
#include "fivewin.ch" 
#include "xbrowse.ch" 

    FUNCTION XBrowseArray()
    LOCAL oWin2
    local aArray := {}
    local oBrw
    local n:= 1, j:=1
    local aRow := {}
    
    setballoon( .t. )
    

      for n = 1 to 28
         if j > 7
            aadd( aArray, aRow )
            aRow := {}
            j = 1
         ENDIF
         aadd( aRow, TCelda():New(n) )
         j++
      next
      
      aadd( aArray, aRow )
    
      DEFINE WINDOW oWin2  TITLE "XBrowse Test"

        @ 0,0 XBROWSE oBrw ;
      FIELDS oBrw:aRow[ 1 ]:cDia, ;
             oBrw:aRow[ 2 ]:cDia, ;
             oBrw:aRow[ 3 ]:cDia, ;
             oBrw:aRow[ 4 ]:cDia, ;
             oBrw:aRow[ 5 ]:cDia, ;
             oBrw:aRow[ 6 ]:cDia, ;
             oBrw:aRow[ 7 ]:cDia;
      HEADERS 'dia ', 'dia', 'dia', 'dia', 'dia', 'dia', 'dia' ;
      COLSIZES 30,30,30,30,30,30,30 ;
      ARRAY aArray OF oWin2

     
      for n = 1 to 7
         oBrw:aCols[ n ]:bClrStd := GenColor( oBrw, n )
         oBrw:aCols[ n ]:bLDClickData := GenDblClick( oBrw, n )
         oBrw:aCols[ n ]:bToolTip := GenToolTip( oBrw, n )
      NEXT
     
       oBrw:createfromcode()

       oWin2:oClient := oBrw

       ACTIVATE WINDOW oWin2

return .t.


Function GenColor( oBrw, n )
return {|| if ( oBrw:aRow[ n ]:lDia , {CLR_BLACK,CLR_CYAN},{CLR_BLACK,CLR_WHITE} ) }

Function GenDblClick( oBrw, n )
return {|| oBrw:aRow[ n ]:lDia := !oBrw:aRow[ n ]:lDia, oBrw:aRow[ n ]:cToolTip:= if( oBrw:aRow[ n ]:lDia,;
          "Dia Seleccionado","Dia " + strzero( oBrw:aRow[ n ]:cDia,2 )), oBrw:refresh() }

Function GenToolTip( oBrw, n )
return {|| oBrw:aRow[ n ]:cToolTip }
      
      
CLASS TCelda

   DATA   cDia
   DATA   cToolTip
   DATA     lDia

   METHOD New() 

ENDCLASS

METHOD New( n ) CLASS TCelda
   ::lDia := .f.
   ::cDia := n
   ::cToolTip := "Dia " + strzero( n,2 )
return Self
Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM

Re: Color a celdas en xBrowse.

Posted: Tue Mar 17, 2009 04:19 AM

Daniel,

Simplemente magnifico.

Gracias por tu esfuerzo y dedicación

William, Morales

Saludos



méxico.sureste

Continue the discussion