PUBLIC oform1 oform1=NEWOBJECT("form1") oform1.Show RETURN DEFINE CLASS form1 AS form Top = 3 Caption = "ObjToClient is OK" * ShowWindow = 2 you can test this into VCX ( a bug on WAIT command ) ADD OBJECT grid1 AS grid WITH ; ColumnCount = 2, ; Left = 20, ; Top = 16, ; Width = 320 PROCEDURE Load CREATE CURSOR myCursor (myField1 C(10) DEFAULT STR(RECCOUNT()); , myField2 C(10) DEFAULT STR(RECCOUNT())) FOR k=1 TO 10 APPEND BLANK NEXT LOCATE ENDPROC PROCEDURE grid1.AfterRowColChange(colOrder) WAIT windows 'Active cell Top :'+STR(OBJTOCLIENT(this.Columns(M.colOrder).Text1,1)) ; +CHR(13)+' Left :'+STR(OBJTOCLIENT(this.Columns(M.colOrder).Text1,2)) NOWAIT noclear ENDPROC ENDDEFINEVFP return 4000 if you request the Top,Left for a not active cell,