Quote from Tioemo on December 21, 2024, 11:38 amBuenos días
Tengo un problemilla con una aplicación android que estoy desarrollando.
Quisiera que cuando hago clic en un botón, se ejecute una rutina y si mantengo unos segundos se ejecute otra distinta.
En el objeto botón, no encuentro un evento "longPress" o algo parecido.Gracias por su paciencia
Buenos días
Tengo un problemilla con una aplicación android que estoy desarrollando.
Quisiera que cuando hago clic en un botón, se ejecute una rutina y si mantengo unos segundos se ejecute otra distinta.
En el objeto botón, no encuentro un evento "longPress" o algo parecido.
Gracias por su paciencia

Quote from luishp on December 21, 2024, 7:58 pm@tioemo
En VisualNEO Web no existe un evento "longPress" directamente para los botones. Sin embargo, puedes implementar este comportamiento utilizando un temporizador (
Timer) y eventos de ratón comoMouseDownyMouseUp. A continuación, te explico cómo puedes lograrlo:Pasos para implementar "longPress" en VisualNEO Web:
- Agrega un temporizador:
- Desde la paleta de herramientas, arrastra un objeto
Timera tu página.- Configura el intervalo del temporizador, por ejemplo, 2000 ms (2 segundos) para un "longPress".
- Configura el botón:
- En el botón que quieres utilizar, programa los siguientes eventos:
MouseDown: Inicia el temporizador.MouseUp: Detén el temporizador y ejecuta la acción para un clic normal.- Lógica para el "longPress":
- En el evento del temporizador, programa la acción para el "longPress".
- Asegúrate de detener el temporizador después de ejecutar la acción para evitar repeticiones.
Ejemplo de NeoScript:
Configuración del temporizador:
- Nombre del temporizador:
LongPressTimer- Intervalo: 2000 ms
- Acción del temporizador:
etVar [IsLongPress] "true" AlertBox "LongPress" "Ejecutaste un longPress." "" StopTimer "LongPressTimer"
Eventos del botón:
MouseDown:SetVar [IsLongPress] "false" StartTimer "LongPressTimer"MouseUp:
If [IsLongPress] = "false" AlertBox "Click Normal" "Ejecutaste un clic normal." "" EndIf StopTimer "LongPressTimer"Explicación:
MouseDowninicia el temporizador y marca que aún no es un "longPress".- Si el usuario suelta el botón antes de que el temporizador termine (
MouseUp), se ejecuta la acción de clic normal.- Si el temporizador llega al final, ejecuta la acción del "longPress" y establece la variable
IsLongPressentruepara evitar acciones duplicadas.Este método es sencillo y funciona para implementar un comportamiento similar al "longPress" en VisualNEO Web.
En VisualNEO Web no existe un evento "longPress" directamente para los botones. Sin embargo, puedes implementar este comportamiento utilizando un temporizador (Timer) y eventos de ratón como MouseDown y MouseUp. A continuación, te explico cómo puedes lograrlo:
Timer a tu página.MouseDown: Inicia el temporizador.MouseUp: Detén el temporizador y ejecuta la acción para un clic normal.LongPressTimeretVar [IsLongPress] "true" AlertBox "LongPress" "Ejecutaste un longPress." "" StopTimer "LongPressTimer"
MouseDown:
SetVar [IsLongPress] "false" StartTimer "LongPressTimer"
MouseUp:
If [IsLongPress] = "false" AlertBox "Click Normal" "Ejecutaste un clic normal." "" EndIf StopTimer "LongPressTimer"
MouseDown inicia el temporizador y marca que aún no es un "longPress".MouseUp), se ejecuta la acción de clic normal.IsLongPress en true para evitar acciones duplicadas.Este método es sencillo y funciona para implementar un comportamiento similar al "longPress" en VisualNEO Web.
Quote from Tioemo on December 22, 2024, 9:22 amMuchas gracias por su rápida respuesta.
Curiosamente la solución propuesta me funciona cuando ejecuto la aplicación en el navegador pero si la compilo, en el móvil, no funciona.
He modificado unas líneas en el código recibido:
StopTimer por TimerStop
StartTimer "LongPressTimer" por TimerStart "LongPressTimer" 2000
Un Saludo
Muchas gracias por su rápida respuesta.
Curiosamente la solución propuesta me funciona cuando ejecuto la aplicación en el navegador pero si la compilo, en el móvil, no funciona.
He modificado unas líneas en el código recibido:
StopTimer por TimerStop
StartTimer "LongPressTimer" por TimerStart "LongPressTimer" 2000
Un Saludo