Mensajes: 29
Temas: 9
Gracias Recibidas: 10 en 5 posts
Gracias Dadas: 18
Registro en: Oct 2022
Sabe alguien por qué el evento change de un DateBox se ejecuta dos veces en cada cambio de fecha. ¿?
Mensajes: 1,183
Temas: 136
Gracias Recibidas: 446 en 297 posts
Gracias Dadas: 463
Registro en: Jul 2020
Bienvenido. No uso ese control, pero si pasas tu código podemos mirarlo, si no... pueden ser mil cosas.
Saludos
No podemos regresar
Los siguientes 1 usuarios dice gracias a Shordi por este post:1 usuarios dice Gracias! a Shordi por este post
• gartumar2
Mensajes: 1,416
Temas: 202
Gracias Recibidas: 350 en 257 posts
Gracias Dadas: 258
Registro en: Jul 2020
(03-11-2022, 02:31)gartumar2 escribió: Sabe alguien por qué el evento change de un DateBox se ejecuta dos veces en cada cambio de fecha. ¿?
No lo se pero lo curioso es que el doble evento solo se produce si cambias la fecha con el boton de calendario y no si lo cambias a mano, donde cada vez que cambias un numero salta el evento.
Así que creo que algo sucede con el manejo del llamado "proxy" de eventos que no se como funciona pero me parece que va por ahí el tema.
Creo que como usuario no puedes hacer nada al respecto, solo reportarlo en bug tracker de gambas o enviar un email a la lista internacional, y seguramente lo solucionen en unos dias en la version de desarrollo, pero no en la que tienes instalada si es de repositorios.
1 Saludo.
Los siguientes 1 usuarios dice gracias a tincho por este post:1 usuarios dice Gracias! a tincho por este post
• gartumar2
Mensajes: 29
Temas: 9
Gracias Recibidas: 10 en 5 posts
Gracias Dadas: 18
Registro en: Oct 2022
Efectivamente:
Si cambias la fecha de forma manual se dispara el evento cada pulsación en día o en mes y al terminar de poner el año. Esto parece lógico ya que la fecha ha tenido todos esos "Change". Cuando cambias la fecha desde el calendario o desde código, el evento se dispara siempre dos veces. Esto no es razonable, ya que solo ha habido un cambio en la fecha. He realizado un programa de prueba con un DateBox y un Button y he hecho las comprobaciones.
Solución:
He puesto una variable testigo, de tal forma que cuando el evento se dispara, si la fecha es la misma que la anterior, se sale del procedimiento sin hacer nada.
Public Sub dtxFecha_Change()
If $dTestigoFecha = dtxFecha.Value Then Return
$dTestigoFecha = dtxFecha.Value
..
..
Los siguientes 1 usuarios dice gracias a gartumar2 por este post:1 usuarios dice Gracias! a gartumar2 por este post
• Shordi
Mensajes: 281
Temas: 19
Gracias Recibidas: 43 en 39 posts
Gracias Dadas: 70
Registro en: Jul 2020
ya hubo ese problema con otros controles y es un bug de Gambas, o de QT5 o de GTK3
"Es mejor saber todo de muy poco que muy poco de todo" - anonimo
Los siguientes 1 usuarios dice gracias a tercoide por este post:1 usuarios dice Gracias! a tercoide por este post
• gartumar2
Mensajes: 1,416
Temas: 202
Gracias Recibidas: 350 en 257 posts
Gracias Dadas: 258
Registro en: Jul 2020
(03-11-2022, 23:19)gartumar2 escribió: He puesto una variable testigo, de tal forma que cuando el evento se dispara, si la fecha es la misma que la anterior, se sale del procedimiento sin hacer nada.
También se puede hacer, por ejemplo, de esta otra manera:
1 Saludo.
Los siguientes 1 usuarios dice gracias a tincho por este post:1 usuarios dice Gracias! a tincho por este post
• gartumar2