Autor |
Mensaje |
guadafan
Aprendiz
Registrado: Agosto 2012
Mensajes: 81
Edad: 49 Ubicación: Alcalá de Guadaira (Sevilla)
|
¿Cómo Hago Para Actualizar Un Label Desde El Mismo Procedimiento?
Tengo esto en código:
Cuando pulso el botón, no llega a aparecer el "Actualizando base de datos..." porque antes de que termine el procedimiento le doy valor "" y por lo visto sólo se refresca en pantalla cuando termina el procedimiento. ¿Cómo lo hago entonces?
|
#1 Miercoles, 03 Septiembre 2014, 12:23 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: ¿Cómo Hago Para Actualizar Un Label Desde El Mismo Procedimiento?
Es claro que el procedimiento es muy veloz. Propono un
última edición por vuott el Miercoles, 03 Septiembre 2014, 15:46; editado 2 veces
|
#2 Miercoles, 03 Septiembre 2014, 12:52 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: ¿Cómo Hago Para Actualizar Un Label Desde El Mismo Procedimiento?
Guadafan:
Citar: por lo visto sólo se refresca en pantalla cuando termina el procedimiento
Si, es por eso, solo se refresca cuando termina el procedimiento .
Otra idea:
última edición por jsbsan el Miercoles, 03 Septiembre 2014, 13:02; editado 1 vez
|
#3 Miercoles, 03 Septiembre 2014, 13:01 |
|
|
guadafan
Aprendiz
Registrado: Agosto 2012
Mensajes: 81
Edad: 49 Ubicación: Alcalá de Guadaira (Sevilla)
|
Re: ¿Cómo Hago Para Actualizar Un Label Desde El Mismo Procedimiento?
|
#4 Miercoles, 03 Septiembre 2014, 14:44 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: ¿Cómo Hago Para Actualizar Un Label Desde El Mismo Procedimiento?
Solo añade Wait 1 antes de borrar el contenido del label:
Eso hace que (después de ejecutar el código anterior) se espere un segundo para asignar una cadena vacía a la etiqueta. No sólo eso, sino que además se llama recursivamente al eventloop, permitiendo que se ejecute el código antes de que termine el procedimiento actual.
Supongo que si no añades esto, el proceso se ejecuta tan rápido que no da tiempo a ver el texto de la etiqueta... así que realmente esto añade un tiempo extra al total de la ejecución del código.
Saludos
Edito: Si pones el Wait 1 justo antes de Application.Busy = 0, podrás ver además el cursor de espera.
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#5 Miercoles, 03 Septiembre 2014, 15:45 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: ¿Cómo Hago Para Actualizar Un Label Desde El Mismo Procedimiento?
Hay que usar procesos...
Nota:
En tu caso particular seria:
En mi ordenador es muy rápido y no se ve el mensaje, entonce se deberia de añadir (como te han comentado Jguardon y Vuott) una pequeña espera forzada, con wait 1
última edición por jsbsan el Miercoles, 03 Septiembre 2014, 18:21; editado 1 vez
|
#6 Miercoles, 03 Septiembre 2014, 18:11 |
|
|
guadafan
Aprendiz
Registrado: Agosto 2012
Mensajes: 81
Edad: 49 Ubicación: Alcalá de Guadaira (Sevilla)
|
Re: ¿Cómo Hago Para Actualizar Un Label Desde El Mismo Procedimiento?
Sí, con el wait sale bien, me parece un poco raro depender de un wait para hacer esto la verdad, porque en cierto modo quiere decir que dependiendo de la velocidad de la máquina lo hará o no.
Lo que me ha pillado por sorpresa es que el hecho de picar en otro toglebutton llame de nuevo al evento clic del botón que tenía antes presionado, haciendo una indeseable re-indexación de la base de datos
|
#7 Miercoles, 03 Septiembre 2014, 18:18 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: ¿Cómo Hago Para Actualizar Un Label Desde El Mismo Procedimiento?
Citar:
Hay que usar procesos...
Eso es lo correcto... cuando queremos procesar la salida del comando shell de alguna manera mientras se está ejecutando. Si símplemente quieres esperar a que acabe, basta con
Más simple. Aunque lo que ha apuntado jsbsan es lo más completo, of course...
Saludos
|
#8 Miercoles, 03 Septiembre 2014, 18:21 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: ¿Cómo Hago Para Actualizar Un Label Desde El Mismo Procedimiento?
Lo que me ha pillado por sorpresa es que el hecho de picar en otro toglebutton llame de nuevo al evento clic del botón que tenía antes presionado, haciendo una indeseable re-indexación de la base de datos
Eso no es porque pulses otro botón, sino porque al pulsar otro botón cambias el estado del togglebutton anterior y se vuelve a disparar su evento click().
Tendrás que usar una condición que compruebe la propiedad Value del togglebutton para que sólo se ejecute el código cuando su valor sea verdadero (esté pulsado).
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#9 Miercoles, 03 Septiembre 2014, 21:07 |
|
|
|