DECLARE Sleep IN kernel32 integer * Form::Init Thisform.AddObject("Proxy",CREATEOBJECT("_ColumnProxy")) This.Proxy.oCol=This.Grid.Column1 && BINDEVENT(This.Grid.Column1,"MouseLeave",This.Proxy,"MouseLeave") BINDEVENT(This.Grid.Column1,"MouseEnter",This.Proxy,"MouseEnter") BINDEVENT(This.Grid.Column1.Header1,"MouseLeave",This.Proxy,"MouseLeave") BINDEVENT(This.Grid.Column1.Header1,"MouseEnter",This.Proxy,"MouseEnter") ADDPROPERTY(This.Grid.Column1,"ToolTipSource","") * form:QueryUnload This.Proxy.oCol=.NULL. DEFINE CLASS _ColumnProxy AS CUSTOM Name="_ColumnProxy" oCol=.NULL. PROCEDURE MouseLeave(nButton, nShift, nXCoord, nYCoord) LOCAL lcCur,llST This.oCol.Parent.ToolTipText= "" lcCur=SET("CURSOR") SET CURSOR OFF llST=_Screen.ActiveForm.ShowTips _Screen.ActiveForm.ShowTips= .F. && now turn off currently displayed tip =Sleep(100) _Screen.ActiveForm.ShowTips= llST SET CURSOR &lcCur. ENDPROC PROCEDURE MouseEnter(nButton, nShift, nXCoord, nYCoord) IF EMPTY(This.oCol.ToolTipSource) This.oCol.Parent.ToolTipText= This.oCol.ToolTipText ELSE This.oCol.Parent.ToolTipText= EVALUATE("This.oCol."+This.oCol.ToolTipSource+".ToolTipText") ENDIF ENDPROC ENDDEFINEMartinaJ
>>>>* Add this to the Column.MouseLeave event >>>>LOCAL lcCur,llST >>>>This.Parent.ToolTipText= "" >>>>lcCur=SET("CURSOR") >>>>SET CURSOR OFF >>>>llST=Thisform.ShowTips >>>>Thisform.ShowTips= .F. && now turn off currently displayed tip >>>>INKEY(.1) >>>>Thisform.ShowTips= llST >>>>SET CURSOR &lcCur. >>>> >>>>* Add this to the Column.MouseEnter event, (as Andreas provided). >>>>IF EMPTY(This.ToolTipSource) >>>> This.Parent.ToolTipText= This.ToolTipText >>>>ELSE >>>> This.Parent.ToolTipText= EVALUATE("This."+This.ToolTipSource+".ToolTipText") >>>>ENDIF >>>> >>>>* Add this to the object/class Header.MouseLeave event >>>>This.Parent.MouseLeave(nButton, nShift, nXCoord, nYCoord) >>>> >>>>* Add this to the object/class Header.MouseEnter event >>>>This.Parent.MouseEnter(nButton, nShift, nXCoord, nYCoord) >>>> >>>>