PUBLIC oform1 oform1=NEWOBJECT("testForm") oform1.Show RETURN DEFINE CLASS testForm as form Caption = "edit only date of datetime" ADD OBJECT text1 AS textbox WITH ; Alignment = 3, ; Value = (DATETIME()), ; Height = 23, ; Left = 124, ; Top = 11, ; Width = 100, ; Name = "Text1" ADD OBJECT dtextbox1 AS dtextbox WITH ; Left = 14, ; Top = 11, ; mycontrolsource = "M.THISFORM.TEXT1.VALUE", ; Name = "Dtextbox1" ADD OBJECT grid1 AS myGrid WITH ; Height = 181, ; Left = 14, ; Top = 47, ; RecordSource = "dateCursor", ; Column1.Bound = .F., ; Column1.Width = 203, ; Column1.Sparse = .F., ; Column1.Name = "Column1", ; Column1.header1.Alignment = 2, ; Column1.header1.Caption = "date in datetime", ; Column1.cltext.myControlsource = "dateCursor.tField" PROCEDURE Load CREATE CURSOR dateCursor ( tField T) FOR I = 1 TO 10 INSERT INTO dateCursor VALUES (DATETIME()+RAND()*1000) ENDFOR GO TOP ENDPROC ENDDEFINE DEFINE CLASS myGrid AS grid ADD OBJECT Column1 AS myColumn ENDDEFINE DEFINE CLASS myColumn AS Column ADD OBJECT header1 as header ADD OBJECT cltext AS dtextbox ENDDEFINE ** CLASS FOR EDIT THE DATE ** DEFINE CLASS dtextbox AS textbox ControlSource = "m.this._Controlsource" HIDDEN ControlSource NullDisplay = "< undefined >" MyControlSource = "NULL" _ControlSource = {} * HIDDEN _ControlSource && a structural error of VFP OOP stop this correct setting * PROTECTED _ControlSource && a error of VFP with grid stop this setting HIDDEN PROCEDURE _ControlSource_Access RETURN TTOD(EVALUATE(m.this.MyControlSource)) ENDPROC HIDDEN PROCEDURE _ControlSource_Assign LPARAMETERS dValue IF m.this.MyControlSource="M." && a variable or properties STORE DTOT(m.dValue) TO (m.this.MyControlSource) ELSE REPLACE (m.this.MyControlSource) WITH DTOT(m.dValue) ENDIF ENDPROC HIDDEN PROCEDURE MyControlSource_Assign LPARAMETERS sControlSource IF TYPE("m.sControlSource")=="T" && this skip bad source THIS.MyControlSource = UPPER(m.sControlSource) ENDIF ENDPROC ENDDEFINEFabio