Pedro,
Si se puede hacer, yo lo hago usando wbrowse de hdc, te adjunto unas imagenes y omo usar los colores por texto, por columna, por linea, en encabezado, en celda activa, en footers, en browse normal...
caso 1
aqui el codigo:
oBrw[x]:bBkColor := { | nRow, nCol, nStyleLine | ColoresCelda( nRow, nCol, nStyleLine, oFolder ) }
oBrw[x]:bTextColor := { | nRow, nCol, nStyleLine | ColoresTexto( nRow, nCol, nStyleLine, oFolder ) }
oBrw[x]:bFont := {|nRow,nCol,nStyleLine| SeleccionaFuente( nRow, nCol, nStyleLine, ;
oFont[1], oFont[2], oFont[3] ) }
HE AQUI EL TRUCO DE ESTO, PUEDES PONER TODAS LAS CONDICIONANTES QUE QUIERASSTAT Function SeleccionaFuente( pnRow, pnCol, pnStyle, oF1, oF2, oF3 )
local cFont
if pnStyle = 0 .AND. pnCol < 35 ; cFont := oF1:hFont // celda standard normal
elseif pnStyle = 0 .AND. pnCol = 35 ; cFont := oF3:hFont // celda standard normal y columna total
elseif pnStyle = 1 ; cFont := oF2:hFont // celda header
elseif pnStyle = 2 ; cFont := oF2:hFont // celda footer
elseif pnStyle = 3 .AND. pnCol > 3 .AND. pnCol < 35 ; cFont := oF1:hFont // celda standard normal seleccionada
elseif pnStyle = 3 .AND. pnCol = 35 ; cFont := oF3:hFont // celda standard normal seleccionada
endif
Return( cFont )
STAT Function ColoresCelda( pnRow, pnCol, pnStyle, oFolder )
local cColor, nPaso
local cCampo := "", i := 0
if pnStyle = 0 .and. pnCol = 2 ; cColor := nRGB(177,216,255)
elseif pnStyle = 0 .AND. pnCol > (aMes[oFolder:nOption,2]+3) .AND. pnCol < 35 ; cColor := nRGB(172,168,153)
elseif pnStyle = 0 .AND. pnCol = 3 ; cColor := nRGB(177,216,255)
elseif pnStyle = 0 .AND. pnCol = 1 ; cColor := GETSYSCOLOR(COLOR_BTNFACE)
elseif pnStyle = 1 .AND. pnCol > (aMes[oFolder:nOption,2]+3) .AND. pnCol < 35 ; cColor := nRGB(172,168,153)
elseif pnStyle = 2 .AND. pnCol > (aMes[oFolder:nOption,2]+3) .AND. pnCol < 35 ; cColor := nRGB(172,168,153)
elseif pnStyle = 0 .AND. pnCol = 35 ; cColor := nRGB(215,215,0)
endif
Return( cColor )
// Establecemos los colores de Letra para las celdas
STAT Function ColoresTexto( pnRow, pnCol, pnStyle, oFolder )
local cColor, nPaso, i:=0, cCampo:=""
if pnStyle = 0 .AND. pnCol > (aMes[oFolder:nOption,2]+3) .AND. pnCol < 35 ; cColor := CLR_GRAY
elseif pnStyle = 0 .AND. pnCol = 35 ; cColor := CLR_BLUE
elseif pnStyle = 1 .AND. pnCol > (aMes[oFolder:nOption,2]+3) .AND. pnCol < 35 ; cColor := CLR_GRAY
elseif pnStyle = 2 .AND. pnCol > (aMes[oFolder:nOption,2]+3) .AND. pnCol < 35 ; cColor := CLR_GRAY
elseif pnStyle = 3 .AND. pnCol > 3 .AND. pnCol < 35 ; cColor := CLR_WHITE
elseif pnStyle = 3 .AND. pnCol = 35 ; cColor := CLR_YELLOW
elseif pnStyle = 2 .AND. pnCol > (aMes[oFolder:nOption,2]+3) .AND. pnCol < 35 ; cColor := CLR_GRAY
endif
return( cColor )
CA