Enrico,
Enrico Maria Giordano wrote:It would be nice to have tooltips on disabled controls. Currently we haven't:
#include "Fivewin.ch"
FUNCTION MAIN()
  LOCAL oDlg, oBtn1, oBtn2
  DEFINE DIALOG oDlg
  @ 1, 1 BUTTON oBtn1 PROMPT "Test 1"
  oBtn1:cTooltip = "Test 1"
  @ 2, 1 BUTTON oBtn2 PROMPT "Test 2" WHEN .F.
  oBtn2:cTooltip = "Test 2"
  ACTIVATE DIALOG oDlg;
       CENTER
  RETURN NIL
EMG
My tooltip System on disabled controls on TDialog Class...
You need Tooltip Class ( TTip() )... I can't to run with standard tooltips
EXTRA TDIALOG
DATA oToolTip
DATA aUltPos
METHOD MiTooltip HIDDEN
//----------------------------------------------------------------------------//
METHOD MouseMove( nRow, nCol, nKeyFlags ) CLASS TDialog
if ::lHelpIcon != NIl .and. !::lHelpIcon
if ::oCursor != nil
SetCursor( ::oCursor:hCursor )
else
CursorArrow()
endif
endif
::SetMsg( ::cMsg )
::CheckToolTip()
::MiTooltip(nRow, nCol)
if ::bMMoved != nil
return Eval( ::bMMoved, nRow, nCol, nKeyFlags )
endif
return 0
//--------------------------------------------------------------------------//
METHOD MiToolTip(nRow, nCol) CLASS TDIALOG
Local xFrom, x
*
// -------------------------------------------------------------
IF ::oToolTip != NIL
::oToolTip:nRowNuevo:= nRow
::oToolTip:nColNuevo:= nCol
ENDIF
//---------------------------------------------------------------------
*
xFrom:= ChildWindowFromPoint(::hWnd, {nRow, nCol})
IF ::aUltPos == NIL .OR. (::aUltPos[3] != xFrom)
IF ::oTooltip != NIL
::OTOOLTIP:HIDE()
ENDIF
IF xFrom != NIL
x:= oWndFromHwnd(xFrom)
#Define ES_CONTROL(x) (x:ClassName() != "TWINDOW" .AND.;
x:ClassName() != "TDIALOG" )
IF x != NIL .AND. ES_CONTROL(x) .AND. !Empty(RetToolTip(x))
IF !x:lActive
#Define START_SHOW 350 // Este tiempo a 200 es muy bueno pq
// vale para 2 cosas: 1 que con mvto.
// rapido sobre el get el tip no se muestre
// y 2 que dando el foco rapidamente a un
// get y luego quitandoselo tampoco se
// muestre el tip.
#Define x_(c) if(c== nil, "", c)
IF ::oTooltip != NIL
::OTOOLTIP:DESTROY()
ENDIF
::OTOOLTIP:= TTip():New(x, (RetToolTip(x)), NIL, NIL, NIL, NIL, START_SHOW)
// + 15 para mostrar debajo del cursor del raton
::OTOOLTIP:Show(nRow+ 15, nCol)
ENDIF
ENDIF
ENDIF
ENDIF
::aUltPos:= {nRow, nCol, xFrom}
RETURN NIL