![]() |
Barra de progreso?
Hola... algunos de los reports que genero tardan un poco bastante de tiempo.... y para evitar que el usuario vuelva a hacer click en el botón y cuelgue todo me gustaría mostrar algo asi como una barra de progreso o una barra de estado que indique que se está generando el reporte.
Alguna sugerencia? Es util la barra de progreso para esto? Cómo hago a calcular el tiempo? Debería colocarla en un form aparte del que uso para que el usuario seleccione los datos y que llama al preview del report? Muchas gracias por su ayuda!! |
Hola,
Si de entrada no sabes cómo calcular el progreso de la tarea, yo optaría por utilizar una imagen GIF o un pequeño archivo AVI que mostrase que se está llevando a cabo el reporte. Dicha imagen o vídeo AVI lo mostraría a su vez en un formulario "modal", de forma que, mientras este estuviera visible, el usuario no pudiera salir del mismo, por decirlo así. |
Hola
Aparte de lo dicho por el Maestro dec, que ademas no se me hubiera ocurrido (esta genial).:) Este codigo lo encontre por ahi, crea un progressBar en un dialog.
Ahora solo seria aplicarlo en tu codigo, supongo.:) Saludos Edito: no puedo arreglar el codigo con las etiquetas. |
Muchas gracias por la información! Un par de duditas... No tengo un objeto DialogTimer, estoy usando Delphi 5, viejito... quizas sea por eso :(
Por otro lado... mi codigo es así más o menos:
Reflexiones: Si lo hago después del dialog va a tardar igual pero sin mostrar la barra de progreso que quiero, si lo hago antes de crear el dialog tarda la creacion del reporte y despues muestra la barra de progreso... o sea tengo que hacerlo en pararlelo... con threads?? Me fui para el lado de los tomates? Quizás estoy totalmente perdida :confused: :eek: Gracias! |
Hola
Revisa el ejemplo, correlo y lo entenderás mejor. Saludos |
Muchas gracias Caral, el ejemplo me sirvio mucho para entenderlo. EL problema que se presenta ahora es que la consulta a la BD la puedo hacer antes o despues de mostrar el dialog con el progress bar, y es esa consulta la que consume tiempo. Quisiera que mientras se realiza la consulta se muestre el cartel de espera... sino el tiempo consumido es el tiempo q tarda la consulta mas el tiempo del dialog... no resulta algo real.
Para ese caso tendría que crear un nuevo thread sobre el cual ejecutar o la consulta o el dialog... es decir hacer las cosas en paralelo... o puede haber otra forma? Gracias por su ayuda! |
La franja horaria es GMT +2. Ahora son las 21:44:57. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi