>Create Cursor xlColors (colorIndex i, rgbval c(15),ncolor i) >oExcel = Createobject("Excel.Application") >With oExcel > .Workbooks.Add > For ix = 1 To 56 > Insert Into xlColors ; > (colorIndex, rgbval, ncolor) ; > VALUES ; > ( m.ix, ; > rgbstring( .ActiveWorkbook.ColorS(m.ix) ),; > .ActiveWorkbook.ColorS(m.ix)) > Endfor > .Quit >Endwith >Locate > >Public oForm >oForm = Createobject('Form') >oForm.AddObject('myGrid','grid') >oForm.myGrid.Columns(3).DynamicBackColor = "xlColors.ncolor" >oForm.myGrid.Columns(3).DynamicForeColor = "xlColors.ncolor" >oForm.myGrid.Visible = .T. >oForm.Show > >Function rgbstring > Lparameters tnColor > Local lnRed,lnGreen,lnBlue > lnRed = Bitrshift(Bitand(m.tnColor, 0x0000FF),0) > lnGreen = Bitrshift(Bitand(m.tnColor, 0x00FF00),8) > lnBlue = Bitrshift(Bitand(m.tnColor, 0xFF0000),16) > Return Trans(m.lnRed)+","+Trans(m.lnGreen)+","+Trans(m.lnBlue) >>PS: Colors is readwrite. You can change default palette IOW.