Desde la version de xHarbour 0.99 he utilizado este codigo para animar aleatoriamente el inicio y final de cada ventana, sin embargo con la version de xHarbour 1.2.3. (build 20161218) y Bc7 me envia en error 9003.
Con esta version ultima de xHarbour que cambia en el llamado de esta API ?
(es una aportacion del foro)
- Code: Select all Expand view
ACTIVATE DIALOG oPD CENTERED ON INIT NW_ANIMA( oPD ) ;
Valid( Fade( oPD ), .T. )
*--------------------------------------------------------------*
FUNCTION NW_ANIMA( oDlg )
*--------------------------------------------------------------*
LOCAL nSel:= nRandom(6)
LOCAL cAni:= ""
IF nSel == 1
//a) desde la esquina inferior izquierda hasta la esquina superior derecha:
cAni:= AW_VER_NEGATIVE + AW_HOR_POSITIVE + AW_SLIDE + AW_ACTIVATE
ELSEIF nSel == 2
//b) desde la esquina inferior derecha hasta la esquina superior izquierda:
cAni:= AW_HOR_NEGATIVE + AW_VER_NEGATIVE + AW_SLIDE + AW_ACTIVATE
ELSEIF nSel == 3
//c) desde la esquina superior derecha hasta la esquina inferior izquierda:
cAni:= AW_HOR_NEGATIVE + AW_VER_POSITIVE + AW_SLIDE + AW_ACTIVATE
ELSEIF nSel == 4
//d) Aparecer desplazandose de izquierda a derecha
cAni:= AW_HOR_POSITIVE + AW_SLIDE + AW_ACTIVATE
ELSEIF nSel == 5
//e) desde la esquina superior izquierda hasta la esquina inferior derecha:
cAni:= AW_HOR_POSITIVE + AW_VER_POSITIVE + AW_SLIDE + AW_ACTIVATE
ELSEIF nSel == 6
//f) aparecer desde el centro:
cAni:= AW_CENTER + AW_SLIDE + AW_ACTIVATE
ELSEIF nSel == 0
cAni:= AW_BLEND
ENDIF
AnimateWindow( oDlg:hWnd, 500, cAni )
oDlg:Refresh()
RETURN 0
DLL32 FUNCTION AnimateWindow( hWnd As LONG, dwTime As LONG, dwFlags As LONG ) AS LONG PASCAL ;
from "AnimateWindow" lib "user32.DLL"
*--------------------------------------------------------------*
FUNCTION fade( oDlg, oWner )
*--------------------------------------------------------------*
LOCAL nSel:= nRandom(6)
LOCAL cAni:= AW_VER_NEGATIVE + AW_HOR_POSITIVE + AW_SLIDE + AW_HIDE
IF nSel == 1
//a) desde la esquina inferior izquierda hasta la esquina superior derecha:
cAni:= AW_VER_NEGATIVE + AW_HOR_POSITIVE + AW_SLIDE + AW_HIDE
ELSEIF nSel == 2
//b) desde la esquina inferior derecha hasta la esquina superior izquierda:
cAni:= AW_HOR_NEGATIVE + AW_VER_NEGATIVE + AW_SLIDE + AW_HIDE
ELSEIF nSel == 3
//c) desde la esquina superior derecha hasta la esquina inferior izquierda:
cAni:= AW_HOR_NEGATIVE + AW_VER_POSITIVE + AW_SLIDE + AW_HIDE
ELSEIF nSel == 4
//d) Aparecer desplazandose de izquierda a derecha
cAni:= AW_HOR_POSITIVE + AW_SLIDE + AW_HIDE
ELSEIF nSel == 5
//e) desde la esquina superior izquierda hasta la esquina inferior derecha:
cAni:= AW_HOR_POSITIVE + AW_VER_POSITIVE + AW_SLIDE + AW_HIDE
ELSEIF nSel == 6
//f) aparecer desde el centro:
cAni:= AW_CENTER + AW_SLIDE + AW_HIDE
//ELSEIF nSel == 0
// cAni:= AW_BLEND + AW_HIDE
ENDIF
AnimateWindow( oDlg : hWnd, 500, cAni )
oDlg : Hide()
AnimateWindow( oDlg : hWnd, 500, AW_BLEND + AW_SLIDE + AW_ACTIVATE + AW_HIDE)
IF !EMPTY(oWner)
//AnimateWindow( oDlg : hWnd, 500, AW_BLEND + AW_SLIDE + AW_ACTIVATE+AW_HIDE)
//oWner : show()
oWner : setcontrol()
oWner : setfocus()
ENDIF
RETURN 0