Hi Sam.
I see that Cetin has already jumped in to answer most of your questions. (Thanks a lot Cetin < s > ! )
>> I you write the code todefine a column class how do you instantiate it at run time within a grid ? <<
With code something like this in the grid's init. Just be aware that when you replace the base class columns with your custom column class, you must save and restore any property settings (like control sources) because you will lose them. Also, if you have any embedded custom classes (like custom headers and/or custom text boxes) you will lose them too. Personally, I think that a custom column class is more trouble than it is worth, but here is partial code to replace vfp's base class columns with your custom columns at runtime.
WITH This
lnColumnCount = .ColumnCount
FOR lnCol = 1 TO lnColumnCount
.RemoveObject( .Columns[1].Name )
ENDFOR
FOR lnCol = 1 TO lnColumnCount
.AddObject( 'Column'+ALLTRIM( STR( lnCol ) ), 'ColBase' )
ENDFOR
ENDWITH
DODEFAULT()
Marcia