Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-08-2010
antigrondona antigrondona is offline
Miembro
 
Registrado: ene 2010
Posts: 47
Poder: 0
antigrondona Va por buen camino
Progressbar no responde

Hola amigos, tgo un formulario que carga una serie de consultas y como se ponen un poco pesadas, decidi poner una ventanita que muestre una barra de progreso. Lo que hago es abrir la ventanita con la barra y luego el formulario con las consultasCódigo Delphi [-]formProgeso.show; formConsultas.show

El problema es que la barra no se llena (está chequeada porque si no abro el form de consultas sí lo hace). Alguna vez hice algo en VB6 y había que poner la directiva doevents para que llene la barra y no pase directamente a abrir el otro formulario. Hay algo parecido en delphi o qué debería hacer?
Gracias.
Responder Con Cita
  #2  
Antiguo 09-08-2010
Avatar de afunez2007
afunez2007 afunez2007 is offline
Miembro
 
Registrado: oct 2007
Ubicación: La Ceiba, Honduras
Posts: 170
Poder: 17
afunez2007 Va por buen camino
Lightbulb

Bueno si pusieras un poco de codigo de lo que estas haciendo podriamos indicarte que es lo que pasa, pero para que te hagas algunas ideas prueba lo siguiente:

Imagino que la ventana de consultas es la que las ejecuta y la de progreso solo debe mostrar el avance
Código Delphi [-]
Qry1.ExecSql;
FormProgreso.ProgressBar1.Position:=ProgressBar1.Position+1;
Application.ProcessMessages;

Qry2.ExecSql;
FormProgreso.ProgressBar1.Position:=ProgressBar1.Position+1;
Application.ProcessMessages;

Qry3.ExecSql;
 FormProgreso.ProgressBar1.Position:=ProgressBar1.Position+1;
 Application.ProcessMessages;

///Etc..

Espero estas ideas te sirvan

Saludos
__________________
Si robas, roba un beso, si mientes que sea por amor y si engañas que sea a la muerte!!
Responder Con Cita
  #3  
Antiguo 09-08-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Para usar un progressbar hay que tener en cuenta que necesitas:

1.- Contar con un valor que se vaya incrementando conforme algo suceda en el proceso que quieres mostrar (número de registros, segundos, minutos, intentos, pasos de un proceso, etc.) Y esta valor debe ser finito.

2.- Necesitas tener acceso a una parte de tu proceso donde "avance" el contador para poder hacer el refresco correspondiente en el progressbar.

3.- En consultas sql y similares no se cumple ninguna de las 2 anteriores por lo que no puedes utilizarlo ya que al momento de lanzar la consulta tu ya no tienes control sobre el proceso que se realiza en el servidor de BD, es más ni siquiera sabemos cuanto tiempo durará o cuantos registros se leerán.

Puedes usar el progressbar en modo "marquee" que es en donde una barrita verde va y viene indicando que se está haciendo algo o bien abrir un hilo de ejecución adicional para mostrar una animación o algo así. Si buscas por los foros verás que ya se ha tratado el tema con muchas opciones de solución.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #4  
Antiguo 09-08-2010
antigrondona antigrondona is offline
Miembro
 
Registrado: ene 2010
Posts: 47
Poder: 0
antigrondona Va por buen camino
No puse código porque no hay problemas con la barra en sí, la ventana que contiene la barra funciona bién, el progreso se muestra. El problema es que al realizar 2 acciones secuencialmente, una para abrir la ventana con el progreso y luego el formulario con las consultas, es como que la ventana de progreso pierde el control y pasa a ejecutar las consultas, en consecuencia la barra de progreso no se llena. El código es sencillo, no pongo el código de la ventana de progreso ni el del formulario de consulta porque estos no tienen problemas, lo que hago es lo siguiente:
Código Delphi [-]
formProgreso.show {al mostrarse debería llenarse (reitero, aquí no lo hace y ese es el problema, pero he probado sin abrir el formConsultas y si funciona)}
formConsultas.show; {al mostrarse ejecuta las consultas}
formProgreso.close; {se cierra cuando las consultas han finalizado}
Responder Con Cita
  #5  
Antiguo 09-08-2010
Avatar de afunez2007
afunez2007 afunez2007 is offline
Miembro
 
Registrado: oct 2007
Ubicación: La Ceiba, Honduras
Posts: 170
Poder: 17
afunez2007 Va por buen camino
Lightbulb

Pones muy poco codigo, no logro comprender todo el entorno de lo que estas haciendo, deberias de pegarnos aqui la secuencia de los procedures que ejecutas

Saludos
__________________
Si robas, roba un beso, si mientes que sea por amor y si engañas que sea a la muerte!!
Responder Con Cita
  #6  
Antiguo 10-08-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Pues precisamente lo que te mencionaba, llega el momento en que ya no tienes control del proceso de consultas que es lo que está pasando. Revisa mi post y verás.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #7  
Antiguo 10-08-2010
antigrondona antigrondona is offline
Miembro
 
Registrado: ene 2010
Posts: 47
Poder: 0
antigrondona Va por buen camino
Gracias por la ayuda amigos. Llegué a la solución invocando las consultas dentro de la barra de progreso, cada vez que hace una consulta llena la barra proporcionalmente, de esta manera el control está sobre la barra y cuando finaliza las consultas abre el formulario con los datos cargados.
Gracias nuevamente.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Webbrowser no responde Roro Internet 2 24-02-2010 19:28:09
Así se responde a las amenazas y/o tonterías Lepe La Taberna 10 10-12-2008 13:48:38
TEdit no responde a OnKeyPress salvica OOP 2 16-04-2006 10:21:08
procedimiento que no responde chechu Varios 3 24-11-2005 18:10:22
la BD no responde.. celesdiaz Firebird e Interbase 4 06-06-2005 02:48:12


La franja horaria es GMT +2. Ahora son las 07:50:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi