FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Crear aviso "Espere unos minutos" durante operacion con mucha carga de CPU . AYUDA
Bien, intentare ser breve.
En mi aplicacion, tengo unos formularios para realizar consultas, las cuales demoran normalmente entre 10 y 15 segundos en el mejor de los casos, pero pueden llegar a demorar un 30 segundos. La cuestion es que se me ocurrio poner una pantalla ke fuese algo asi como lo siguiente y lo llamo con el siguiente codigo Código Delphi [-] with TfrmWaitForm.create do try show; crearVentana(TfrmInformeCarterosTodosPendientes); //Esta llamada es la que demora.. finally close; free; end; El formulario se muestra (el de espera) pero no se actualiza, eso debe ser porque la llamada crearVentana(TfrmInformeCarterosTodosPendientes); utiliza mucha CPU y es la que demora. He probado usando timers para redibujar el formulario de espera, he probado con hilos, y nada, no se como hacer para ke el formulario de espera se vea y dibuje a tiempo ke la consulta SQL se ejcuta. Lo que obtengo es un cuadro plomo (donde se deberia ver el formulario de espera). El formulario de espera tiene un jvwaitgradient que se mueve de lado, por lo que el formulario debe redibujarse lo suficientemente rapido como para notar la animacion . Espero algun guru de delphi pueda ayudarme. Atte. Gracias |
#2
|
|||
|
|||
Has probado Application.ProcessMessages o similar en el bucle donde consume mucha CPU??
|
#3
|
||||
|
||||
Hola, ya tambien abogo por el Application.ProcessMessages sino lo has usado ya.
Pero hay algo que me intriga, no se si es cuestión de la nomenclatura que usas o que, es lo siguiente: Tienes un formulario que realiza las consultas y luego tienes un form que hace crea una ventana de espera, pero luego tienes esto:
¿Creas el Form llamado TfrmWaitForm, y luego el crea las consultas? De todos modos quizá deberías poner parte del código de la función CrearVentana y la función que realiza las consultas y supuestamente actualizas el form de espera, para ver donde falla. Saludos |
#4
|
||||
|
||||
Estoy de acuerdo con Bicho, incluso deberías plantearlo de otra forma si quieres actualizar el mensaje de TWaitForm.
Hay otras formas de plantearlo, depende de como quieras hacerlo. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#5
|
||||
|
||||
no has pensado en usar Threads? es un poco más complicado pero está hecho para este tipo de situaciones
__________________
self.free; |
#6
|
|||
|
|||
Hola:
¿ No te funciona una TStatusBar ? La puedes tener oculta, hacerla visible antes del proceso con el texto que desees en la propiedad Simple Text, y ocualtarla al finalizar. Un saludo. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ventana MDI, "Siempre visible" y "Pantalla completa" | ixMike | API de Windows | 7 | 11-04-2007 18:36:55 |
¿cuál es mejor: "close" o "application.terminate"? | unreal4u | Varios | 5 | 05-03-2007 11:01:19 |
"ChequeaEsto" elegido el futuro "Killer CLubDelphi" | mamcx | Noticias | 51 | 31-10-2006 20:56:32 |
porque no me reconoce los caracteres "*" ni "%" cuando filtro | mrmago | Conexión con bases de datos | 10 | 27-01-2006 04:21:16 |
"Unable to complete..." La conexion se pierde durante la ejecución | ESA | Firebird e Interbase | 2 | 24-03-2004 14:09:49 |
|