Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Algunas preguntas

Estas en el tema de Algunas preguntas en el foro de Visual Basic clásico en Foros del Web. Estoy haciendo un programa en VB6 que lee un fichero Xml lo convierte a DataBase, y procesa los datos de la DataBase. He utilizado para ...
  #1 (permalink)  
Antiguo 13/04/2008, 03:45
 
Fecha de Ingreso: febrero-2008
Mensajes: 3
Antigüedad: 16 años, 2 meses
Puntos: 0
Algunas preguntas

Estoy haciendo un programa en VB6 que lee un fichero Xml lo convierte a DataBase, y procesa los datos de la DataBase.

He utilizado para leer los datos de Xml el ChilkatXml, He creado un timer en tiempo real en pantalla que al llegar a cierta hora me compacta la DataBase.

Algunas Label para presentación de datos.

He aqui mis preguntas, el programa funciona bien en los procesos, pero

* Como puedo saber cual es la subrutina que esta en uso, y si se termina su ejecución o se queda trabajando o en standby?

* Cuando esta en medio de un proceso, se para el reloj de tiempo real hasta que acaba ese proceso, cuando vuelve a funcionar marca la hora bien. ¿Porque?

* Las Label dejan de funcionar poniendose en Blanco, y no marcando durante el proceso los cambios preestalecidos dentro de ellas, cuando termina la ejecucion del proceso, vuelven a funcionar con los datos finales. ¿Porque?
  #2 (permalink)  
Antiguo 14/04/2008, 11:23
 
Fecha de Ingreso: febrero-2008
Mensajes: 3
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Algunas preguntas

Voy a contestarme yo mismo a alguna de mis preguntas

* Las Label dejan de funcionar poniendose en Blanco, y no marcando durante el proceso los cambios preestalecidos dentro de ellas, cuando termina la ejecucion del proceso, vuelven a funcionar con los datos finales. ¿Porque?

Poniendo DOEVENTS en algunas de las subrutinas que tienen bucles tipo DO WHILE.
  #3 (permalink)  
Antiguo 14/04/2008, 12:46
 
Fecha de Ingreso: marzo-2008
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Algunas preguntas

VB es un lenguaje de programación que tiene un hilo de ejecución: Esto es: mientras se está ejecutando una función, no hace nada más, a no ser que se le diga explícitamente que haga algo más... Como podría ser el refresco de la pantalla del programa que se está ejecutando, o como la ejecución de la función DoEvents que tú mismo has encontrado... Tu problema con el reloj es el mismo caso que el del refresco de los textbox.

La función DoEvents, examina los eventos pendientes de ejecución, para ejecutarlos en el punto en el que lo has situado. O sea que si tú situas DoEvents en una función que está dentro de un botón que hace una tarea relativamente larga, y mientras se está ejecutando, le pulsas otra vez al botón: La función del botón se ejecutará de nuevo sin haber terminado la primera. (No sé si me he explicado bien. pero hay que tener muy claro lo que hace esta función para ponerlo apropiadamente en tus funciones, y no modificar algún valor que no había sido tratado)... So lo que quieres es sólo actualizar los datos de la pantalla, intenta refrescar el formulario, y no dar acceso a, por ejemplo, poder cerrarlo. (Todo depende de lo que desees).

Para lo de la subrutina en uso, puedes utilizar una variable de texto global (que rara vez aconsejo) que tendrías que ir actualizando cada vez que entras en una subrutina.

Saludos, Foxi.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:34.