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