Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

DataBox evento change dos veces
#1

Sabe alguien por qué el evento change de un DateBox se ejecuta dos veces en cada cambio de fecha. ¿?
    ¡Gracias!
#2

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:
  • gartumar2
    ¡Gracias!
#3

(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:
  • gartumar2
    ¡Gracias!
#4

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:
  • Shordi
    ¡Gracias!
#5

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:
  • gartumar2
    ¡Gracias!
#6

(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:
GAMBAS
  1. Public Sub GridViewFilter_KeyPress()
  2.   If Key.Text <> Upper(Key.Text) Then
  3.     Stop Event



1 Saludo.
[-] Los siguientes 1 usuarios dice gracias a tincho por este post:
  • gartumar2
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje
Último mensaje por Shell
21-09-2021, 13:26

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)