Thanks Fabio and Dragan
Well, before testing your code I changed the column DaynamicBackColor to a result based on IIF() and that changed the Commandbutton backColor which was good enough for what we trying to do.
Mo
>>>hello
>>>
>>>how to change a command button forecolor in a grid based on a value in a table that populate the grid?
>>>
>>>Thanks
>>
>>
>>o=createobject("frmColorButton")
>>o.show
>>o.addproperty("me",m.o)
>>
>>define class frmColorButton as form
>>
>> add object grd as grid ;
>> with columncount=1
>>
>> procedure init
>> create cursor zz (nColor i)
>> insert into zz values (0xffffff)
>> insert into zz values (0xffff7f)
>> insert into zz values (0xff7fff)
>> insert into zz values (0x7fffff)
>> insert into zz values (0x7f7fff)
>> insert into zz values (0xff7f7f)
>> insert into zz values (0x7fff7f)
>> locate
>> with this.grd
>> .recordsource="zz"
>> with .column1
>> .sparse=.f.
>> .removeobject(.controls[2].name)
>> .addobject("cmdColor", "cmdColor")
>> .cmdColor.visible=.t.
>> .dynamicfontshadow=[this.column1.cmdColor.refresh()]
>> .currentcontrol="cmdColor"
>> endwith
>> endwith
>>
>> endproc
>>
>> procedure destroy
>> clear events
>> endproc
>>
>>enddefine
>>
>>
>>define class cmdColor as commandbutton
>> themes = .F.
>> fontbold = .T.
>> procedure refresh
>>
>> this.backcolor=nColor
>> this.Forecolor=BITXOR(nColor,0xF0F0F0)
>> this.Caption = STR(nColor)
>> endproc
>>
>>enddefine
>>
>
>Nice trick!