If pemstatus(oCol,'Text1',5) If Not pemstatus(oCol,'btext1',5) oCol.AddObject('bText1',lcTextClass) For i = 1 To Amembers(laProp,oCol.Text1) && Get all properties If pemstatus(oCol.Text1,laProp(i),0) And laProp(i) # 'NAME' Store Eval('ocol.Text1.'+laProp(i)) To ('ocol.bText1.'+laProp(i)) Endif Store oCol.Text1.Width To oCol.bText1.Width Store oCol.Text1.Height To oCol.bText1.Height oCol.Sparse=.T. Endfor oCol.CurrentControl = 'bText1' Endif oCol.RemoveObject('Text1') ENDIFI am doing this because I am trying to allow dynamic grid configurations based upon desired behaviors. For instance If grid sorting is required I would load the grid with the appropriate controls at runtime, but if sorting is not required the normal control will suffice.