This.HighlightForeColor = EVALUATE(This.Columns[1].DynamicForeColor)>
thisform.grid1.HighlightForeColor = EVALUATE(Thisform.grid1.Columns[1].DynamicForeColor), but that gives the same error..
LOCAL TestForm AS FormWithBadlyColoredGrid m.TestForm = CREATEOBJECT("FormWithBadlyColoredGrid") m.TestForm.Show(1) m.TestForm = .NULL. DEFINE CLASS FormWithBadlyColoredGrid AS Form ADD OBJECT Grid1 AS Grid WITH ColumnCount = 2, Top = 10, Left = 10, Height = 120, AllowCellSelection = .F. ADD OBJECT Label1 AS Label WITH Top = 160, Left = 10, Caption = "Insert age for the current record", AutoSize = .T. ADD OBJECT TextBox1 AS TextBox WITH Top = 180, Left = 10, Value = 0 ADD OBJECT CheckBox1 AS Checkbox WITH Top = 180, Left = 120, Caption = "Just to receive focus, after Texbox1.valid()", AutoSize = .T. PROCEDURE Grid1.Init CREATE CURSOR ACursor (person C(20), age I) INSERT INTO ACursor (person, age) VALUES ("John", 27) INSERT INTO ACursor (person, age) VALUES ("Carol", 32) INSERT INTO ACursor (person, age) VALUES ("Lyn", 24) GO TOP This.RecordSource = "ACursor" This.BackColor = RGB(128,0,64) This.ForeColor = RGB(255,0,128) This.HighlightBackColor = RGB(255,255,128) This.SetAll("DynamicForeColor", "IIF(age>=30,rgb(0,0,255),rgb(0,255,0))") This.AfterRowColChange() ENDPROC PROCEDURE Grid1.AfterRowColChange LPARAMETERS ColIndex This.HighlightForeColor = EVALUATE(This.Columns[1].DynamicForeColor) ENDPROC PROCEDURE TextBox1.Valid * replace data SELECT ACursor REPLACE age WITH This.Value * refresh grid color in the current row Thisform.Grid1.AfterRowColChange() ENDPROC ENDDEFINE