Evitar La Ejecución De Una Función


Objetivo: Evitar La Ejecución De Una Función
hola

pongamos este ejemplo:

Public sub btnsalir_click()
codigo1
end

Public sub Form_Close()
codigo1
end

si salimos de la aplicación con el boton X de la parte superior derecha el programa ejecuta el codigo y luego se cierra, hasta aquí todo normal, el problema es con el boton Salir, a precionarlo hace ejecuta su codigo pero como a la vez se esta cerrando la aplicacion tambien se ejecuta el codigo del Form_Close.

por eso pregunto: si salgo de la aplicacion con el boton Salir como haga para que el codigo Form_Close no se ejecute.

Perfil MP  
Objetivo: Re: Evitar La Ejecución De Una Función
Hola

Primero hay que saber qué código se ejecuta en cada evento. El código del evento form_close se ejecuta siempre, por lo que tendrás que decidir qué es lo que quieres hacer en cada caso. Usando la instrucción Stop Event lo que haces es inhibir el evento, por lo que si lo pones en el botón click con un condicional podrás controlar mejor lo que hagas. Con un ejemplo lo verás mejor:

Private flag As Boolean

Public Sub Button1_Click()
flag = True
Me.Close
End

Public Sub Form_Close()
If flag Then
Stop Event
Print "no se puede cerrar desde el botón"
flag = False 'restauramos el flag a false para que podamos cerrar desde la X
Endif
End


Si desde cualquier otra parte del formulario volvemos a poner flag = false, entonces el botón cerrará el formulario.

Ahora es cuestión de que apliques tu propia lógica,

saludos.

Perfil MP  
Objetivo: Re: Evitar La Ejecución De Una Función
Yo añadiría que eso es un error de concepto. "Haz las cosas una sola vez".

-¿El botón salir cierra el formulario? pues entonces no debería ejecutar la función.
-¿El formulario puede ser cerrado sin tener que ejecutar la función? Entonces el evento Close no debería ejecutarla

La manera clásica de controlar estas cosas son los flags, que tan conejudamente te ha descrito Jesús. Pero hay otras formas y "El conceto es el conceto", que decía el de "Airbag"....

Perfil MP  
Objetivo: Re: Evitar La Ejecución De Una Función
que cabezón soy el comando "Stop Event" no es necesario con la variables boolean es suficiente
gracias por la ayuda chicos.

no se si puedo aprovechar el post o hacer otro, pero al crear el paquete de instalación de mi aplicacion como le digo a gambas que el acceso directo a mi aplicación se ejecute con kdesudo ejemplo: "kdesudo app-gambas"

última edición por obedlink el Martes, 09 Abril 2013, 17:58; editado 1 vez
Perfil MP  
Objetivo: Re: Evitar La Ejecución De Una Función
Mejor crea un hilo nuevo, que este no tiene nada que ver con el sudo y derivados.

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.0942s (PHP: -30% SQL: 130%)
Consultas SQL: 23 - Debug off - GZIP Activado