>>>* temporarily activate first cell, so that .RelativeRow makes sense >>> lnColno = .Columns(.c_ActivateCellColumn).ColumnOrder >>>>>>What 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 >>>>>>>>