*-------------------- Evento Init with thisform * Invisible .Fade( 0 ) * Despliega (invisible) .Show() * Hace visible gradualmente .Fade( +1 ) endif *--------------------- Evento Destroy with thisform * Si está visible If .Visible * Desaparece gradualmente antes de cerrarse .Fade( -1 ) EndIf endwith *--------------------- Método Fade Lparameters tnMode as Number && +1 fade in, -1 fade out, 0 invisible With thisform * Si es Top-level y Win2000 en adelante If .ShowWindow = 2 and Val( Os(3) ) >= 5 If Empty( tnMode ) SetWindowLong( .hWnd, -20, 0x00080000 ) SetLayeredWindowAttributes( .hWnd, 0, 0, 2 ) Else Local lnOpacity, lnFrom, lnTo, lnStep lnFrom = Iif( tnMode > 0, 0, 255 ) lnTo = Iif( tnMode > 0, 255, 0 ) lnStep = tnMode * 25 * Fade IN/OUT for lnOpacity = lnFrom to lnTo step lnStep SetWindowLong( .hWnd, -20, 0x00080000 ) SetLayeredWindowAttributes( .hWnd, 0, lnOpacity, 2 ) Next SetWindowLong( .hWnd, -20, 0x00080000 ) SetLayeredWindowAttributes( .hWnd, 0, lnTo, 2 ) EndIf endif endwithEl código está funcionando en VFP 7 y 8, pero básicamente debería funcionar en VFP 6 también, con algún cambio menor.