efectos para dialogos
efectos para dialogos
Aqui les dejo codigo para algunos efectos para dialogos. Espero le gusten
#include 'fivewin.ch'
#define AW_HOR_POSITIVE 1 // Animates the window from left to right. This flag can be used with roll or slide animation.
#define AW_HOR_NEGATIVE 2 // Animates the window from right to left. This flag can be used with roll or slide animation.
#define AW_VER_POSITIVE 4 // Animates the window from top to bottom. This flag can be used with roll or slide animation.
#define AW_VER_NEGATIVE 8 // Animates the window from bottom to top. This flag can be used with roll or slide animation.
#define AW_CENTER 16 // Makes the window appear to collapse inward if AW_HIDE is used or expand outward if the AW_HIDE is not used.
#define AW_HIDE 65536 // Hides the window. By default, the window is shown.
#define AW_ACTIVATE 131072 // Activates the window.
#define AW_SLIDE 262144 // Uses slide animation. By default, roll animation is used.
#define AW_BLEND 524288 // Uses a fade effect. This flag can be used only if hwnd is a top-level window.
Function Main()
Local oDlg
Local oBtn
Define Dialog oDlg From 10, 10 To 300, 500 Pixel
@ 10, 10 Button oBtn Size 50, 10 Of oDlg Pixel Action oDlg : End()
Activate Dialog oDlg On Init Centra( oDlg ) Centered Valid( Fade( oDlg ), .t. )
Return 0
Function fade( oDlg )
If( AnimateWindow( oDlg : hWnd, 1000, AW_BLEND + AW_HIDE ) == 0 )
oDlg : Hide()
endif
Return 0
Function Centra( oDlg )
AnimateWindow( oDlg : hWnd, 200, AW_CENTER )
Return 0
DLL32 function AnimateWindow( hWnd As LONG, dwTime As LONG, dwFlags As LONG ) AS LONG PASCAL ;
from "AnimateWindow" lib "user32.DLL"
#include 'fivewin.ch'
#define AW_HOR_POSITIVE 1 // Animates the window from left to right. This flag can be used with roll or slide animation.
#define AW_HOR_NEGATIVE 2 // Animates the window from right to left. This flag can be used with roll or slide animation.
#define AW_VER_POSITIVE 4 // Animates the window from top to bottom. This flag can be used with roll or slide animation.
#define AW_VER_NEGATIVE 8 // Animates the window from bottom to top. This flag can be used with roll or slide animation.
#define AW_CENTER 16 // Makes the window appear to collapse inward if AW_HIDE is used or expand outward if the AW_HIDE is not used.
#define AW_HIDE 65536 // Hides the window. By default, the window is shown.
#define AW_ACTIVATE 131072 // Activates the window.
#define AW_SLIDE 262144 // Uses slide animation. By default, roll animation is used.
#define AW_BLEND 524288 // Uses a fade effect. This flag can be used only if hwnd is a top-level window.
Function Main()
Local oDlg
Local oBtn
Define Dialog oDlg From 10, 10 To 300, 500 Pixel
@ 10, 10 Button oBtn Size 50, 10 Of oDlg Pixel Action oDlg : End()
Activate Dialog oDlg On Init Centra( oDlg ) Centered Valid( Fade( oDlg ), .t. )
Return 0
Function fade( oDlg )
If( AnimateWindow( oDlg : hWnd, 1000, AW_BLEND + AW_HIDE ) == 0 )
oDlg : Hide()
endif
Return 0
Function Centra( oDlg )
AnimateWindow( oDlg : hWnd, 200, AW_CENTER )
Return 0
DLL32 function AnimateWindow( hWnd As LONG, dwTime As LONG, dwFlags As LONG ) AS LONG PASCAL ;
from "AnimateWindow" lib "user32.DLL"
Horacio,
Muy bueno, gracias
Muy bueno, gracias
Salutacions, saludos, regards
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
- cuatecatl82
- Posts: 614
- Joined: Wed Mar 14, 2007 6:49 pm
- Location: San Cristobal de las Casas, Chiapas México
- Contact:
- cuatecatl82
- Posts: 614
- Joined: Wed Mar 14, 2007 6:49 pm
- Location: San Cristobal de las Casas, Chiapas México
- Contact:
-
- Posts: 189
- Joined: Sun Jul 08, 2007 1:46 am
- Location: Uruguay
- Willi Quintana
- Posts: 859
- Joined: Sun Oct 09, 2005 10:41 pm
- Location: Cusco - Perú
- Contact:
- cuatecatl82
- Posts: 614
- Joined: Wed Mar 14, 2007 6:49 pm
- Location: San Cristobal de las Casas, Chiapas México
- Contact:
Me tome la libertad de hacer unas modificaciones que permiten ver el efecto de forma aleatoria, para darle un poco de mas vista al ejemplo..
FUNCTION Centra( oDlg )
LOCAL nSel:= nRandom(4)
LOCAL cAni:= ""
IF nSel == 1
cAni:= AW_HOR_POSITIVE
ELSEIF nSel == 2
cAni:= AW_HOR_NEGATIVE
ELSEIF nSel == 3
cAni:= AW_VER_POSITIVE
ELSEIF nSel == 4
cAni:= AW_VER_NEGATIVE
ELSEIF nSel == 0
cAni:= AW_BLEND
ENDIF
AnimateWindow( oDlg : hWnd, 200, cAni )
oDlg:Refresh()
RETURN 0
Saludos desde México..
FUNCTION Centra( oDlg )
LOCAL nSel:= nRandom(4)
LOCAL cAni:= ""
IF nSel == 1
cAni:= AW_HOR_POSITIVE
ELSEIF nSel == 2
cAni:= AW_HOR_NEGATIVE
ELSEIF nSel == 3
cAni:= AW_VER_POSITIVE
ELSEIF nSel == 4
cAni:= AW_VER_NEGATIVE
ELSEIF nSel == 0
cAni:= AW_BLEND
ENDIF
AnimateWindow( oDlg : hWnd, 200, cAni )
oDlg:Refresh()
RETURN 0
Saludos desde México..
- MauroArevalo
- Posts: 98
- Joined: Thu Jan 19, 2006 11:47 pm
- Location: Bogota DC. Colombia
- Contact:
Horacio:
!Espectacular¡ Gracias.
Rubén:
De lo que entendi.
Efecto de izquierda a derecha
*-----------------------------
Function Izquierda( oDlg )
AnimateWindow( oDlg : hWnd, 200, AW_HOR_POSITIVE)
oDlg:refres()
Return 0
Efecto de derecha izquierda
*-----------------------------
Function Derecha( oDlg )
AnimateWindow( oDlg : hWnd, 200, AW_HOR_NEGATIVE)
oDlg:refres()
Return 0
Efecto de arriba hacia abajo
*-----------------------------
Function Arriba( oDlg )
AnimateWindow( oDlg : hWnd, 200, AW_VER_POSITIVE)
oDlg:refres()
Return 0
Efecto de abajo hacia arriba
*-----------------------------
Function Abajo( oDlg )
AnimateWindow( oDlg : hWnd, 200, AW_VER_NEGATIVE)
oDlg:refres()
Return 0
El 200 es tiempo y si haces la prueba y aumentas a 500 o 1000 se te demora mucho más el efecto.
Saludos,
!Espectacular¡ Gracias.
Rubén:
De lo que entendi.
Efecto de izquierda a derecha
*-----------------------------
Function Izquierda( oDlg )
AnimateWindow( oDlg : hWnd, 200, AW_HOR_POSITIVE)
oDlg:refres()
Return 0
Efecto de derecha izquierda
*-----------------------------
Function Derecha( oDlg )
AnimateWindow( oDlg : hWnd, 200, AW_HOR_NEGATIVE)
oDlg:refres()
Return 0
Efecto de arriba hacia abajo
*-----------------------------
Function Arriba( oDlg )
AnimateWindow( oDlg : hWnd, 200, AW_VER_POSITIVE)
oDlg:refres()
Return 0
Efecto de abajo hacia arriba
*-----------------------------
Function Abajo( oDlg )
AnimateWindow( oDlg : hWnd, 200, AW_VER_NEGATIVE)
oDlg:refres()
Return 0
El 200 es tiempo y si haces la prueba y aumentas a 500 o 1000 se te demora mucho más el efecto.
Saludos,
Edgar Mauricio Arévalo Mogollón.
Bogotá DC. Colombia
FWH 19.06 xHarbour 1.2.1, Pelles C, Fivedit, Borland 7.30
http://www.hymplus.com
Tratando de retomar la programación....
Bogotá DC. Colombia
FWH 19.06 xHarbour 1.2.1, Pelles C, Fivedit, Borland 7.30
http://www.hymplus.com
Tratando de retomar la programación....