FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Animaciones en dialogos
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Animaciones en dialogos
Posted: Tue Dec 26, 2023 06: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

Opci贸n 2


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

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 318
Joined: Fri Jan 14, 2022 08:37 AM
Re: Animaciones en dialogos
Posted: Wed Dec 27, 2023 05: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
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Animaciones en dialogos
Posted: Thu Jan 04, 2024 01: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

Continue the discussion