Evitar que un evento se dispare?

Buenos das compaeros, por favor alguien me puede explicar como evitar que un evento se dispare.

Por ejemplo el evento change de un listbox se me dispara al hacer un listbox1.deleteallrows y me ejecuta el codigo que esta en su interior y que yo no quiero ejecutar en ese momento. Gracias.

Poner Return en el inicio del evento.

Gracias Michel, una pregunta por favor. ¿Esto no imperíria que mi evento deje de funcionar siempre?

Yo necesito que el evento se ejecute, pero necesito poder controlarlo, gracias

Claro que si.

Pero se puede utilizar un flag para controlarlo.

Por ejemplo :

If nodelete = True then Return

nodelete es una boolean propiedad que ser verdad cuando el evento no se ejecuta.

Muchas gracias,Michel pero no termino de entenderlo mi experiencia es solo 1 ao.

Me lo puedes explicar mejor por favor.

  • Aadir esto en el inicio del cdigo en la methoda deleteallrows
If nodelete = True then Return
  • Aada una propiedad “nodelete” a la ventana (clic derecho y add… Property)
  • Hace la propiedad Boolean. Esta es una variable que puede tomar dos valores: verdadero o falso
  • Para el evento que no se dispersa, hagar :
nodelete = True
  • Para que el evento se dispersa, hagar :
nodelete = False

Hola Jose Manuel,

Cuando necesitas que un evento (en este caso el indicado del ListBox) se comporte de forma diferente en funcin de qu accin lo dispara lo mejor es utilices flags como indica Michael. Por ejemplo, en un mtodo cualquiera:

MyFlag = True listbox1.deleteallrows MyFlag = False

De este modo, antes de llamar a ‘DeleteAllRows’ puedes poner el flag a ‘True’ y posteriormente comprobar su estado en la primera lnea de cdigo dentro del evento ‘CellChange’:

if MyFlag = True then Return resto de cdigo

Sin embargo, este es el modo ms bsico de acometer el problema. Lo ideal sera incluir tanto el flag en cuestin como el comportamiento que lo cambia dentro de una subclase del ListBox. De ese modo, no tendras cdigo “disperso” por un lado y otro

Si necesitas ms ayuda, no dudes en indicarme :wink:

Javier Rodrguez
Evangelista Xojo en Espaol, Desarrollador, Consultor y Formador Xojo
Autor del libro “Programacin Multiplataforma Xojo
Autor del plug-in GuancheMOS para Xojo
Snippery para OS X: editor y gestor de fragmentos y ms!

Muchas gracias a los 2 lo he entendido perfectamente,saludos