Animaciones en dialogos

Animaciones en dialogos

Postby leandro » Tue Dec 26, 2023 6:41 pm

Hola buenas tardes para todos, nos gustaría saber si es posible aplicar animaciones a los diálogos, publicamos dos gif, para explicar cual es el efecto que queremos lograr.

Espero haberme hecho entender de antemano gracias.

De antemano gracias
Opción 1
Image
Opción 2
Image

LEANDRO AREVALO
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1481
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Animaciones en dialogos

Postby paquitohm » Wed Dec 27, 2023 5:10 pm

Hola,

Probablemente se pueda conseguir esos efectos modificando los nTop, nLeft, nBottom y nRight del dialogo combinado con las iteracciones y los sleeps necesarios


En lenguaje harbour con fwh consigueme un dialogo que se mueva desde la parte inferior de la pantalla hasta la parte superior

ChatGPT
Para crear un diálogo en Harbour con FWH (FiveWin for Harbour) que se mueva desde la parte inferior de la pantalla hasta la parte superior, puedes utilizar la función FWH_CREATE_DIALOG para crear el diálogo y FWH_SET_POS para cambiar la posición del diálogo en cada iteración. Aquí tienes un ejemplo sencillo:

harbour
Copy code
#include "FiveWin.ch"

FUNCTION Main()
LOCAL nDlg, nStep, nPosY

// Crear el diálogo
nDlg := FWH_CREATE_DIALOG({|oDlg|}, ;
FWH_TITLE, "Diálogo Móvil", ;
FWH_WIDTH, 200, ;
FWH_HEIGHT, 50)

// Obtener la posición inicial en Y
nPosY := FWH_GET_SCREEN_HEIGHT() - FWH_GET_HEIGHT(nDlg)

// Establecer la posición inicial del diálogo
FWH_SET_POS(nDlg, FWH_GET_SCREEN_WIDTH() / 2 - FWH_GET_WIDTH(nDlg) / 2, nPosY)

// Mover el diálogo desde la parte inferior hasta la superior
FOR nStep := nPosY TO 0 STEP -1
FWH_SET_POS(nDlg, FWH_GET_LEFT(nDlg), nStep)
FWH_REFRESH_WINDOW(nDlg)
FWH_DELAY(50) // Esperar 50 milisegundos para dar un efecto de movimiento suave
NEXT

// Esperar antes de cerrar el diálogo
FWH_DELAY(1000)

// Cerrar el diálogo
FWH_DESTROY_WINDOW(nDlg)

RETURN NIL
En este ejemplo, se crea un diálogo simple con un título y se establece su posición inicial en la parte inferior de la pantalla. Luego, se utiliza un bucle FOR para cambiar la posición del diálogo en cada iteración y simular el movimiento hacia la parte superior de la pantalla. La función FWH_DELAY se utiliza para introducir un breve retraso entre cada iteración y dar un efecto de movimiento suave. Finalmente, se espera un segundo antes de cerrar el diálogo.




Ahora en lenguaje harbour

ChatGPT
Aquí tienes un ejemplo en lenguaje Harbour utilizando formularios y temporizadores para lograr el efecto deseado:

harbour
Copy code
// Crear formulario
DEFINE WINDOW MovimientoDialogo ;
AT 1,1 ;
WIDTH 40 HEIGHT 10 ;
TITLE "Diálogo Móvil" ;
TIMER ON TIMERPROC MovimientoTimer

// Inicializar variables
nStep := 1
nPosY := GetSysMetrics(1) - 10 // Altura de la pantalla menos la altura del formulario

// Establecer posición inicial del formulario
@ 10, 1 SAY "Mensaje aquí"

// Mostrar formulario
ACTIVATE WINDOW MovimientoDialogo

// Función que se ejecuta con cada intervalo del temporizador
PROCEDURE MovimientoTimer()
// Mover el formulario hacia la parte superior
nPosY := nPosY - nStep
@ nPosY, 1 TO MovimientoDialogo

// Si llega a la parte superior, detener el temporizador
IF nPosY <= 0
CLEAR TIMER
WAIT "Espere un momento..." TIMEOUT 1
// Cerrar el formulario
RELEASE WINDOW MovimientoDialogo
ENDIF
RETURN

En este ejemplo, se crea un formulario llamado MovimientoDialogo con un temporizador que se activa. La función MovimientoTimer se ejecuta en cada intervalo del temporizador, moviendo el formulario hacia la parte superior de la pantalla. Cuando el formulario llega a la parte superior, el temporizador se detiene, se muestra un mensaje y se cierra el formulario.

Ten en cuenta que este código está basado en Harbour, y la funcionalidad de temporizadores puede variar ligeramente según la implementación específica de Harbour o el entorno en el que estés ejecutando el código. Ajusta el código según tus necesidades y la configuración de tu entorno Harbour.



Salu2
paquitohm
 
Posts: 108
Joined: Fri Jan 14, 2022 8:37 am

Re: Animaciones en dialogos

Postby karinha » Thu Jan 04, 2024 1:07 pm

Buenos días Leandro. Yo usaría mucho mejor DYNAMIC SAY, y puedo poner el TEXTO yendo hacia arriba, hacia abajo, hacia la izquierda, hacia la derecha o simplemente, PARPADEANDO.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 73 guests