![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
No consigo que avance la barra de progreso.
Este es el código que uso después de visionar diferentes paginas de creación de threads, pero la barra de progreso no avanza, yo lo que quiero es que avance mientras no termina de abrirse la fuente de datos, para que el usuario no crea que la aplicación ha quedado colgada. También pensé en realizar el hilo con la fuente de datos, pero al terminar el hilo pierdo toda la referencia a los datos, por lo que no me sirve. Estoy trabajando con Delphi xe6 y para android. Si en lugar de una barra de progreso se tiene que hacer con una animación, me da igual, el caso es que la aplicación realice algo mientras abre los datos, tampoco son muchos registros, una vez abierta la fuente de datos se mueven perfectamente, incluso si hago un update de un registro es instantáneo.
__________________
SI UN PROBLEMA TIENE SOLUCION, YA NO ES UN PROBLEMA, Y SI NO LA TIENE PARA QUE PREOCUPARSE. |
|
#2
|
||||
|
||||
|
Así a primeras, lo que veo es que la variable avance, está definida fuera del thread y la estás utilizando dentro.
defínela dentro, pues no es necesarias fuera, o incluso elimínala, pues no la necesitas.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#3
|
|||
|
|||
|
Nada amigo, elimino la variable avance y en su lugar pongo, pero la barra de progreso ni siquiera se mueve, incluso pasa una cosa curiosa en tiempo de diseño le tengo valor 80 para ver el color de la barra y no se lo quite, cuando inicio el procedimiento puedes ver que le paso el valor 0, y ni nada, no hace caso.
__________________
SI UN PROBLEMA TIENE SOLUCION, YA NO ES UN PROBLEMA, Y SI NO LA TIENE PARA QUE PREOCUPARSE. |
|
#4
|
||||
|
||||
|
Estas haciendo todo al revez.
La GUI corre en el thread principal y lo estas poniendo en un background. La parte "lenta" la estas dejando en el thread ppal, bloqueando la GUI. No hay razon (normalmente) para poner GUI dentro de otro thread, siempre usa otros threads para correr de forma concurrente CPU/IO intensivo. Por otro lado, si es solo poner un "espera mientras", entonces no tienes que hacer esto. Solo arranca el spinner al inicio, ejecuta la parte "lenta" y paras el spinner al final. Porque ademas, ese progreso que tienes no sirve de nada... Y estas masacrando la CPU al tener un while sin un respiro (un sleep o una tarea asincronica). Y es mala cosa "matar" threads. Mejor dicho, estudia mas sobre este tema ![]()
__________________
El malabarista. |
|
#5
|
|||
|
|||
|
No estoy haciendo ninguna espera, lo que quiero es que mientras el query trae los registros se mueva la barra de progreso, para que no parezca que la aplicación está congelada, o sea, que el usuario vea movimiento mientras se realiza la consulta.
Algún enlace entendible para estudiar más del tema. ![]() ![]()
__________________
SI UN PROBLEMA TIENE SOLUCION, YA NO ES UN PROBLEMA, Y SI NO LA TIENE PARA QUE PREOCUPARSE. |
|
#7
|
||||
|
||||
|
Ya te explique el problema. Lee con cuidado.
Si simplementes copias/pegas un codigo por ahi sin entender como hacer multi-hilos terminaras sin querer incorporando bug(s) y/o haciendo el codigo mas ineficiente. Un computador moderno (ie: De menos de 4 años para aca) es suficientemente rapido para hacer casi de todo en forma secuencial, y la mayoria de los lenguajes (como delphi) no son optimos para hacer concurrencia, asi que es facil hacer algo con problemas.
__________________
El malabarista. |
|
#8
|
||||
|
||||
|
Estoy casi completamente de acuerdo
Digo casi porque para el caso de mostrar un "espere por favor" mientras se hace cierto procesamiento y no bloquear la UI es algo bastante sencillo en Delphi. Aunque admito que si hay que realizar calculos en paralelo y sincronizacion con Delphi es bastante mas complicado |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Crear Hilos de Ejecución con TIdFTP | JAI_ME | Varios | 12 | 13-12-2013 18:28:39 |
| Ayuda con Hilos de ejecucion | kurono | Varios | 19 | 15-01-2011 15:36:40 |
| Problema con hilos de ejecucion | gueritox | OOP | 1 | 14-08-2010 15:26:06 |
| Aplicacion con varios Hilos de Ejecución | samantha jones | Varios | 1 | 02-03-2005 17:27:24 |
| Hilos de ejecucion | el toluca | Varios | 2 | 29-06-2004 22:59:04 |
|