PUBLIC oform1 oform1=NEWOBJECT("form1") oform1.Show RETURN DEFINE CLASS form1 AS form Height = 400 ADD OBJECT grid1 AS myGrid WITH ; Height = 350, ; Left = 34, ; Top = 5, ; Width = 320 ; ,MousePointer = 99 && WITH 99 customMousePointer is called, by default it return 99 PROCEDURE Load CREATE CURSOR XX1CB (F1 I,F2 c(40)) FOR N=100 TO 0 STEP -2 INSERT INTO (ALIAS()) (F1,F2) VALUES(m.n,'Item n°'+sTR(m.n)) ENDFOR LOCATE ENDPROC PROCEDURE unLoad CLOSE TABLES all PROCEDURE Grid1.customMousePointer(nWhere,nRelRow,nRelCol) this.MouseIcon = HOME(4)+IIF(m.nRelRow%2=0,"Icons\Flags\CTRUSA.ICO","Icons\Flags\CTRITALY.ICO") RETURN 99 ENDDEFINE DEFINE CLASS myGrid AS Grid #IF VERSION(5)<900 * THIS IS INCOMPLETE HIDDEN PROCEDURE Visible_Access IF NOT m.this.Visible RETURN .f. ENDIF IF m.This.MousePointer = 99 && for a custom put a dynamic level LOCAL nWhere,nRelRow,nRelCol =grid::GridHitTest(MCOL(m.thisform.name,3),MROW(m.thisform.name,3); ,@m.nWhere,@m.nRelRow,@m.nRelCol) STORE this.customMousePointer(m.nWhere,m.nRelRow,m.nRelCol) TO nWhere IF m.nWhere=99 thisform.MouseIcon = m.this.MouseIcon ENDIF thisform.MousePointer = m.nWhere ELSE thisform.MousePointer = m.This.MousePointer ENDIF ENDPROC #ELSE HIDDEN PROCEDURE MousePointer_Access DEBUGOUT SECONDS(),"mousepointer" IF m.This.MousePointer = 99 && for a custom put a dynamic level LOCAL nWhere,nRelRow,nRelCol =grid::GridHitTest(MCOL(0,3),MROW(0,3),@m.nWhere,@m.nRelRow,@m.nRelCol) RETURN this.customMousePointer(m.nWhere,m.nRelRow,m.nRelCol) ENDIF RETURN m.This.MousePointer ENDPROC PROCEDURE customMousePointer(nWhere,nRelRow,nRelCol) RETURN 99 #ENDIF ENDDEFINE