Cambiar colores de botones en xbrowse

Re: Cambiar colores de botones en xbrowse

Postby nageswaragunupudi » Thu Mar 17, 2016 1:39 am

Without modifying xbrowse.prg.

If the browse is created on a Window, please add these lines of code after oBrw:CreateFromCode()
Code: Select all  Expand view  RUN

   WITH OBJECT oCol:oBtnElip   // or oCol:oBtnList
      :bClrGrad   := nil
      :SetColor( CLR_BLACK, CLR_WHITE ) // Your colors
   END
 


If the browse is created on a Dialog, please include the above code in ON INIT clause of the dialog.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10690
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Cambiar colores de botones en xbrowse

Postby horacio » Thu Mar 17, 2016 12:54 pm

Mr. Rao Thanks for your reply , I tried your solution does not work. I made changes in the class , I have managed to eliminate the gradient color, but I can not assign a color. This is the code

Code: Select all  Expand view  RUN

@ 0,0 BTNBMP ::oBtnList RESOURCE "" OF ::oBrw NOBORDER SIZE 0,0
::oBtnList:bClrGrad := Nil
::oBtnList:hBitmap1 := FwDArrow()
::oBtnList:bAction := { || ::ShowBtnList() }
::oBtnList:SetFont( ::DataFont )
//::oBtnList:SetColor( aColors[ 1 ], aColors[ 2 ] )
::oBtnList:SetColor( 0, CLR_HRED )
 


Saludos
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Cambiar colores de botones en xbrowse

Postby nageswaragunupudi » Thu Mar 17, 2016 5:04 pm

My suggestion has to work. Please try again.
I advise you not to modify xbrowse.prg.

Here is a test program. My solution works the same way even with older versions.
Code: Select all  Expand view  RUN
#include "fivewin.ch"

REQUEST DBFCDX

function Main()

   local aData := {{ "One   ", 1000 },{ "Two   ", 2000 }, { "Three ", 3000 }}
   local oWnd, oBrw

   DEFINE WINDOW oWnd TITLE FWVERSION

   @ 0,0 XBROWSE oBrw OF oWnd DATASOURCE aData AUTOCOLS LINES CELL NOBORDER

   WITH OBJECT oBrw
      :nRowHeight    := 25
      WITH OBJECT :aCols[ 1 ]
         :nEditType  := EDIT_BUTTON
         :bEditBlock := { || MsgInfo( "EditButton" ) }
         :nBtnWidth  := 25
         :nWidth     := 100
      END
      :CreateFromCode()
      WITH OBJECT :aCols[ 1 ]:oBtnElip
         :bClrGrad   := nil
         :SetColor( CLR_BLACK, CLR_YELLOW )
      END
   END

   oWnd:oClient := oBrw
   ACTIVATE WINDOW oWnd //CENTERED

return nil
 


Image
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10690
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Cambiar colores de botones en xbrowse

Postby horacio » Fri Mar 18, 2016 1:17 pm

Mr. Rao It is true, in your example works . I went back to try their solution and I can remove the gradient but I can not assign color. This is the code

Code: Select all  Expand view  RUN

        @ 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 := '@!'
                    :aCols[ i ] : lBtnTransparent := .t.
                        Exit
                    Case 4
                        :aCols[ i ] : nWidth         := 70
                        :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 ] : AddResource(  FwDArrow(), )
                        //:aCols[ i ] : nBtnBmp := 1
                        :aCols[ i ] : nDataStrAlign := 2
                    :aCols[ i ] : lBtnTransparent := .t.
                        Exit
                    Case 5
                        :aCols[ i ] : cHeader := 'CARGO'
                        :aCols[ i ] : nEditType     := EDIT_BUTTON
                        :aCols[ i ] : bEditBlock    := { | r, c, o | EditaCargo( r, c, o ) }
                    :aCols[ i ] : lBtnTransparent := .t.
                    :aCols[ i ] : AddResource(  FwDArrow(), )
                        :aCols[ i ] : nBtnBmp := 1
                        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 ) }
                    :aCols[ i ] : lBtnTransparent := .t.
                        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  := 70
                    :aCols[ i ] : AddResource(  FwDArrow(), )
                        :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
        With Object oBrw2 :aCols[ 3 ] : oBtnList
                :bClrGrad     := Nil
                :SetColor( CLR_BLACK, CLR_HRED )
        EndWith 
        With Object oBrw2 :aCols[ 4 ] : oBtnElip
                :bClrGrad     := Nil
                :SetColor( CLR_BLACK, CLR_HRED )
        EndWith 
        With Object oBrw2 :aCols[ 5 ] : oBtnElip
                :bClrGrad     := Nil
                :SetColor( CLR_BLACK, CLR_HRED )
        EndWith 
        With Object oBrw2 :aCols[ 6 ] : oBtnList
                :bClrGrad     := Nil
                :SetColor( CLR_BLACK, CLR_HRED )
        EndWith 
        With Object oBrw2 :aCols[ 7 ] : oBtnElip
                :bClrGrad     := Nil
                :SetColor( CLR_BLACK, CLR_HRED )
        EndWith 
        With Object oBrw2 :aCols[ 8 ] : oBtnList
                :bClrGrad     := Nil
                :SetColor( CLR_BLACK, CLR_HRED )
        EndWith 
        oVar : oWndChild2 : SetControl( oBrw2 )
 


This is the image

Image

Many Thanks

Saludos
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 38 guests