* temporarily activate first cell, so that .RelativeRow makes sense lnColno = .Columns(.c_ActivateCellColumn).ColumnOrderWhat is c_ActivateCellColumn?
>Procedure MouseMove(x1,x2,x3,x4) > Local nXCoord_In, nYCoord_In, lnColno, lnDiff, loGrid, nWhere_Out, nRelRow_Out, nRelCol_Out > Local nView_Out > > With This.Parent > > * find out what row we're over > nXCoord_In = Mcol(Wontop(),3) > nYCoord_In = Mrow(Wontop(),3) > Store 0 To nWhere_Out , nRelRow_Out , nRelCol_Out , nView_Out > .GridHitTest(nXCoord_In, nYCoord_In, @nWhere_Out, @nRelRow_Out, @nRelCol_Out) > > * over a cell, but not the same as last time > If nWhere_Out = 3 And nRelRow_Out # This.h_DynToolTipRow > > * temporarily activate first cell, so that .RelativeRow makes sense > lnColno = This.Parent.Columns(This.Parent.c_ActivateCellColumn).ColumnOrder > lnColno = lnColno + Iif(This.ColumnOrder = lnColno, 1, 0) - .LockColumns > If .RelativeRow = 0 Or .RelativeColumn # lnColno > .SetFocus() > .ActivateCell(Max(1, .RelativeRow), lnColno) > Endif > > * move to the record we're interested in > lnDiff = nRelRow_Out - .RelativeRow > > Try > Skip (lnDiff) In (.RecordSource) > Catch > > EndTry > > ******************************************************* > > * temporarily on the right record ... > * so insert code to do something here ... > > ******************************************************* > > Skip (-lnDiff) In (.RecordSource) > This.h_DynToolTipRow = nRelRow_Out > Endif > Endwith >Endproc > > >Procedure MouseLeave(nButton, nShift, nXCoord, nYCoord) > This.h_DynToolTipRow = 0 > Try > Thisform.ShowTip() > Endtry >Endproc >>