Page 1 of 2

Cambiar colores de botones en xbrowse

PostPosted: Mon Mar 14, 2016 3:17 pm
by horacio
Colegas, eso necesito, cambiar el color celeste que trae por defecto los BtnBmp en xbrowse y no encuentro la manera, adjunto imagen

Image

Muchísimas gracias

Saludos

Re: Cambiar colores de botones en xbrowse

PostPosted: Tue Mar 15, 2016 12:53 pm
by horacio
+1

Re: Cambiar colores de botones en xbrowse

PostPosted: Tue Mar 15, 2016 2:39 pm
by karinha

Re: Cambiar colores de botones en xbrowse

PostPosted: Tue Mar 15, 2016 3:29 pm
by horacio
Gracias Karinha pero no encuentro en la wiki como cambiar la apariencia de estos botones. Mirando la clase veo que las variables de clase ::oBtnElip y ::oBtnList corresponden a EDIT_BUTTON y a EDIT_LISTBOX. Al mostrar ::oBtnList : ClassName() efectivamente pertenecen a la clase BtnBmp, ahora cuando desde mi código intento ::oBtnList : SetColor( 0, CLR_WHITE ) obtengo este error

Code: Select all  Expand view

   Error description: Error BASE/1004  No existe el m‚todo: SETCOLOR
   Args:
     [   1] = U  
     [   2] = N   0
     [   3] = N   16777215

Stack Calls
===========
   Called from:  => SETCOLOR( 0 )
   Called from: C:\sipep_cliente\legajos.prg => TABLALEGAJOS( 85 )
 


Alguna idea ???. Desde ya muchas gracias.

Saludos

Re: Cambiar colores de botones en xbrowse

PostPosted: Tue Mar 15, 2016 3:31 pm
by cnavarro
Usa una variable local, e inténtalo, es decir:

Code: Select all  Expand view


METHOD ....

Local o   := Self

   o:oBtn....:SetColor

 

Re: Cambiar colores de botones en xbrowse

PostPosted: Tue Mar 15, 2016 3:53 pm
by horacio
Gracias Cristóbal por responder. No entiendo como implementar tu solución. Te posteo el código

Code: Select all  Expand view

        @ 100, 20 xBrowse oBrw2 DataSource oVar : aLeg Columns 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 Pixel Of oVar : oWndChild2 NoBorder
        With Object oBrw2
            For i := 1 To Len( :aCols )
                Switch i
                    Case 1
                        :aCols[ i ] : nWidth        := 60
                        :aCols[ i ] : cHeader       := 'Nº LEG.'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 2
                        :aCols[ i ] : nWidth  := 260
                        :aCols[ i ] : cHeader := 'SECCIÓN'
                        :aCols[ i ] : nGrpHeight := 2
                        Exit
                    Case 3
                        :aCols[ i ] : cHeader      := 'CARACTER'
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : nEditType    := EDIT_LISTBOX
                        :aCols[ i ] : aEditListTxt := { "TITULAR", "SUPLENTE", "CONTRATADO", "PROVISIONAL" }
                        :aCols[ i ] : bOnPostEdit  := { | o, x, n | UpdateCaracter( x ) }
                        :aCols[ i ] : cEditPicture := '@!'
                        Exit
                    Case 4
                        :aCols[ i ] : nWidth         := 60
                        :aCols[ i ] : cHeader       := 'ANTIG.'
                        :aCols[ i ] : nEditType     := EDIT_BUTTON
                        :aCols[ i ] : bEditBlock    := { | r, c, o | EditaAntiguedad( r, c, o ) }
                    :aCols[ i ] : bOnPostEdit   := { | o, cVal | If ( cVal != nil, oVar : aLeg[ oBrw2 : nArrayAt ][ 4 ] := cVal, ) }
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 5
                        :aCols[ i ] : cHeader := 'CARGO'
                        :aCols[ i ] : nEditType     := EDIT_BUTTON
                        :aCols[ i ] : bEditBlock    := { | r, c, o | EditaCargo( r, c, o ) }
                        Exit
                    Case 6
                        :aCols[ i ] : cHeader := 'ESTADO'
                        :aCols[ i ] : nEditType    := EDIT_LISTBOX
                        :aCols[ i ] : aEditListTxt := { "NORMAL", "LICENCIA", "BAJA" }
                        :aCols[ i ] : bOnPostEdit  := { | o, x, n | UpdateEstado( x ) }
                        Exit
                    Case 7
                        :aCols[ i ] : cHeader   := 'HORAS'
                        :aCols[ i ] : bEditBlock    := { | r, c, o | EditaHoras( r, c, o ) }
                        :aCols[ i ] : nEditType := EDIT_BUTTON
                        :aCols[ i ] : nWidth  := 50
                    :aCols[ i ] : AddBmpFile( "C:\FWH1204\bitmaps\AlphaBmp\bs_options.bmp" )
                    :aCols[ i ] : nAlphaLevel( 10 )
                        :aCols[ i ] : nBtnBmp := 1
                        :aCols[ i ] : lBtnTransparent := .t.
                        Exit
                    Case 8
                        :aCols[ i ] : nWidth        := 100
                        :aCols[ i ] : cHeader       := 'DESCUENTO' + CRLF + 'PRESENTISMO'
                        :aCols[ i ] : nEditType     := EDIT_LISTBOX
                        :aCols[ i ] : nDataStrAlign := 2
                        :aCols[ i ] : aEditListTxt  := { "SI", "NO" }
                        :aCols[ i ] : bOnPostEdit   := { | o, x, n | UpdateDescuentoPresentismo( x ) }
                    :aCols[ i ] : AddBmpFile( "c:\fwh1412\bitmaps\16x16\zoom2.bmp" )
                    :aCols[ i ] : nBtnBmp := 1
                    :aCols[ i ] : lBtnTransparent := .t.
                        Exit
                    Case 9
                        :aCols[ i ] : nWidth        := 100
                        :aCols[ i ] : cHeader       := 'DESC. OBLIG.' + CRLF + 'DÍAS'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 10
                        :aCols[ i ] : nWidth        := 100
                        :aCols[ i ] : cHeader       := 'ARTICULO DE' + CRLF + 'LICENCIA'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 11
                        :aCols[ i ] : nWidth        := 100
                        :aCols[ i ] : cHeader       := 'FECHA INICIO' + CRLF + 'DE LICENCIA'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 12
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'FECHA FIN' + CRLF + 'DE LICENCIA'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 13
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'CON O SIN ' + CRLF + 'GOCE SUELDO'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 14
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'F. DE INGRESO'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 15
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'REEMPLAZA A'
                        Exit
                    Case 16
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'F. INICIO DE' + CRLF + 'LICENCIA'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                    Case 17
                        :aCols[ i ] : nWidth       := 100
                        :aCols[ i ] : cHeader      := 'F. FIN DE' + CRLF + 'LICENCIA'
                        :aCols[ i ] : nDataStrAlign := 2
                        Exit
                EndSwitch        
                :aCols[ i ] : cHeader        := Upper( :aCols[ i ] : cHeader )
                :aCols[ i ] : oHeaderFont   := oFont1
                :aCols[ i ] : oDataFont     := oFont2
                :aCols[ i ] : nHeadStrAlign := 0
            Next
            :bClrHeader         := { || { 0, CLR_WHITE } }
            :nRowHeight       := 28
            :nHeaderHeight    := 40
            :nColDividerStyle := 1
            :nRowDividerStyle := 5
            :nColAdvance      := 50
            :nColorPen        := nRgb( 225, 225, 225 )
            :nMarqueeStyle    := 3
            :nFreeze          := 2
            :nRecSelColor     := CLR_WHITE
            :bClrSelFocus     := { || { CLR_WHITE, RGB( 43, 87, 154 ) } }
            :nHeaderLines     := 2
            :bRClicked        := { || MsgStop( oBrw2 :aCols[ 7 ] : oBtnList : ClassName() ) }
            :lVScroll         := .f.
            :lFlatStyle       := .t.
            :l2007            := .f.
            :lKinetic         := .f.
            :lAllowRowSizing  := .f.
            :lExcelCellWise   := .t.
            :lFreezeLikeExcel := .t.
            :lFastEdit        := .t.
            :lColDividerComplete := .t.
            :bKeyDown         := { | nKey | KeyLegajos( nKey ) }  
        :SetGroupHeader( 'DATOS', 3, 14, oFont1 )
        :SetGroupHeader( 'SOLO PARA SUPLENTES', 15, 17, oFont1 )
            :CreateFromCode()
        End
        oVar : oWndChild2 : SetControl( oBrw2 )
 


Muchas Gracias

Saludos

Re: Cambiar colores de botones en xbrowse

PostPosted: Tue Mar 15, 2016 3:57 pm
by cnavarro
Horacio, pensaba que estabas modificando directamente el codigo en la clase

Voy a echarle un ojo a ver si veo algo

Re: Cambiar colores de botones en xbrowse

PostPosted: Tue Mar 15, 2016 5:05 pm
by cnavarro
Por lo que veo tendrias que modificarlo en la clase
Actualmente, parece que selecciona el color del bClrHeader del browse

Re: Cambiar colores de botones en xbrowse

PostPosted: Tue Mar 15, 2016 5:42 pm
by karinha
Intenta:

Code: Select all  Expand view

// ::bClrHeader   := {|| { GetSysColor( COLOR_BTNTEXT ), GetSysColor( COLOR_BTNFACE ) } }
   ::bClrHeader   := {|| { GetSysColor( COLOR_BTNTEXT ), GetSysColor( COLOR_BTNFACE ), nRGB( 125, 165, 224 ), nRGB( 203, 225, 252 ) } }
   ::bClrFooter   := ::bClrHeader
   ::bClrStd      := {|| { CLR_BLACK, GetSysColor( COLOR_WINDOW )} }
   ::bClrSel      := {|| { CLR_BLACK, GetSysColor( COLOR_INACTIVECAPTIONTEXT )} }
   ::bClrSelFocus := {|| { CLR_WHITE, GetSysColor( COLOR_HIGHLIGHT )} }

 

Re: Cambiar colores de botones en xbrowse

PostPosted: Tue Mar 15, 2016 5:56 pm
by karinha
Talvez:

Code: Select all  Expand view

   oBrw:aCols[ 1 ]:nEditType       := EDIT_BUTTON
   oBrw:aCols[ 1 ]:AddBmpFile( "..\bitmaps\AlphaBmp\sound.bmp" )
   oBrw:aCols[ 1 ]:nHeadBmpNo      := 1
 



Re: Cambiar colores de botones en xbrowse

PostPosted: Tue Mar 15, 2016 8:15 pm
by horacio
Gracias Karinha y Cristóbal por su tiempo. Cristóbal, parece que tomara el estilo 2007 que es el estilo que trae por defecto la clase. E intentado cambiar este estilo desde el código de la clase pero realmente no me doy cuenta. Sé que las variables de clase son ::oBtnElip y ::oBtnList. Pero al parametrizarlas no obtengo ningún resultado.Donde debería modificar la clase ?. Muchísimas gracias

Saludos

Re: Cambiar colores de botones en xbrowse

PostPosted: Tue Mar 15, 2016 8:25 pm
by cnavarro
Aqui

Code: Select all  Expand view

METHOD CreateButtons() CLASS TXBrwColumn

.../...
      @ 0,0 BTNBMP ::oBtnList RESOURCE "" OF ::oBrw NOBORDER SIZE 0,0

      .../...

     :SetColor( aColors[ 1 ], aColors[ 2 ] )

 


Lo ideal seria tener una DATA bColorBtnList

Re: Cambiar colores de botones en xbrowse

PostPosted: Wed Mar 16, 2016 10:15 am
by horacio
Cristóbal, he hecho los cambios en la clase pero parece no funcionar. Este es el código modificado

Code: Select all  Expand view

@ 0,0 BTNBMP ::oBtnList RESOURCE "" OF ::oBrw NoBorder SIZE 0,0 Transparent
::oBtnList:bAction := { || ::ShowBtnList() }
::oBtnList:hBitmap1 := FwDArrow()
::oBtnList:SetColor( 0, CLR_RED )
 

Esta es la imagen

Image

Si te fijas, el método :SetColor() no lo procesa ( los botones aparecen en blanco ). He hecho las mismas modificaciones a ::oBtnElip que corresponde a EDIT_BUTTON pero no obtengo ningún resultado ( los botones celestes en la imagen ). Realmente estoy bastante perdido con este tema. Muchas gracias

Saludos

Re: Cambiar colores de botones en xbrowse

PostPosted: Wed Mar 16, 2016 10:57 am
by cnavarro
Voy a ver si encuentro la solucion o le preguntare a Mr Rao, que es su creador

Re: Cambiar colores de botones en xbrowse

PostPosted: Wed Mar 16, 2016 12:11 pm
by horacio
Muchas gracias Cristóbal.

Saludos