Page 1 of 1

Cambiar color de una celda Listbox

Posted: Mon Mar 10, 2008 9:19 am
by softruz
Muy buenas, ¿Sabeis como puedo cambiar el color de una celda en un listbox?

Un Saludo.

Posted: Mon Mar 10, 2008 11:56 am
by Antonio Linares
Te refieres a un listbox ó a un browse ?

Posted: Mon Mar 10, 2008 4:34 pm
by softruz
Me refiero a un listbox.

Un Saludo.

Posted: Mon Mar 10, 2008 5:02 pm
by Antonio Linares
Revisa fwh/samples/ownerdra.prg, tal vez pueda servirte.

Re

Posted: Mon Mar 10, 2008 6:04 pm
by softruz
Antetodo gracias por la respuesta, lo que necesito es asignar a cada celda un color diferente según un color en RGB.

Un Saludo.

Posted: Mon Mar 10, 2008 11:54 pm
by cuatecatl82
softruz:

Yo lo hago así desde un TWbrowse talves te pueda servir.. aki pinto un dia del mes de color diferente..

REDEFINE LISTBOX oLbx FIELDS "";
ALIAS "AUDITOR" ID 100 OF oDlg

oLbx:Set3DStyle()
oLbx:lHScroll := .F.
oLbx:bLine := {|| { AUDITOR->USUARIO, AUDITOR->NIVEL, CVALTOCHAR(AUDITOR->FECHA), AUDITOR->HORA, AUDITOR->ACCION} }
oLbx:aHeaders := { "Usuario","Privilegio","Fecha","Hora","Acción Realizada" }
oLbx:aHJustify := {2,2,2,2,2}
oLbx:nClrPane := {|| IIF( (oLbx:cAlias)->(OrdKeyNo())%2=0, nRGB(255,255,255), ColorDia(AUDITOR->FECHA) ) }
oLbx:lAdjLastCol := .T.
oLbx:lAdjBrowse := .T.


//----------------------------------------------------------------------------//
STATIC FUNCTION ColorDia(dDate)

LOCAL cRGBColor:= ""
LOCAL nDia:= 0

nDia:= STRZERO(DAY(dDate),2)

IF nDia == "01"
cRGBColor:= nRGB(255,253,196)
ELSEIF nDia == "02"
cRGBColor:= nRGB(208,202,183)
ELSEIF nDia == "03"
cRGBColor:= nRGB(222,235,255)
ELSEIF nDia == "04"
cRGBColor:= nRGB(206,255,196)
ELSEIF nDia == "05"
cRGBColor:= nRGB(255,235,206)
ELSEIF nDia == "06"
cRGBColor:= nRGB(194,230,253)
ELSEIF nDia == "07"
cRGBColor:= nRGB(255,238,255)
ELSEIF nDia == "08"
cRGBColor:= nRGB(173,207,247)
ELSEIF nDia == "09"
cRGBColor:= nRGB(228,222,203)
ELSEIF nDia == "10"
cRGBColor:= nRGB(180,222,185)
ELSEIF nDia == "11"
cRGBColor:= nRGB(217,228,255)
ELSEIF nDia == "12"
cRGBColor:= nRGB(202,255,239)
ELSEIF nDia == "13"
cRGBColor:= nRGB(255,226,204)
ELSEIF nDia == "14"
cRGBColor:= nRGB(246,220,255)
ELSEIF nDia == "15"
cRGBColor:= nRGB(226,255,216)
ELSEIF nDia == "16"
cRGBColor:= nRGB(250,222,237)
ELSEIF nDia == "17"
cRGBColor:= nRGB(251,255,224)
ELSEIF nDia == "18"
cRGBColor:= nRGB(234,255,211)
ELSEIF nDia == "19"
cRGBColor:= nRGB(255,210,211)
ELSEIF nDia == "20"
cRGBColor:= nRGB(255,240,255)
ELSEIF nDia == "21"
cRGBColor:= nRGB(217,222,180)
ELSEIF nDia == "22"
cRGBColor:= nRGB(254,255,231)
ELSEIF nDia == "23"
cRGBColor:= nRGB(231,255,204)
ELSEIF nDia == "24"
cRGBColor:= nRGB(211,235,184)
ELSEIF nDia == "25"
cRGBColor:= nRGB(255,246,224)
ELSEIF nDia == "26"
cRGBColor:= nRGB(255,230,231)
ELSEIF nDia == "27"
cRGBColor:= nRGB(239,235,222)
ELSEIF nDia == "28"
cRGBColor:= nRGB(255,233,176)
ELSEIF nDia == "29"
cRGBColor:= nRGB(231,239,222)
ELSEIF nDia == "30"
cRGBColor:= nRGB(255,255,213)
ELSEIF nDia == "31"
cRGBColor:= nRGB(248,242,223)
ENDIF

RETURN cRGBColor


Ojala y te de una idea..

Saludos..

www.sisa.unlugar.com
www.soldisoft.unlugar.com