PDA

Ver la Versión Completa : 'splash screen' consulta sql


Galahad
16-10-2008, 10:45:00
hola, buenos días...

utilizo algunas consultas sql sobre tablas paradox de un tamaño considerable.
El tema es que alguna de estas querys tardan hasta 10-15 segundos. Necesitaria mostrar al usuario una pantalla o mensaje que le muestre 'calculando o espere por favor....'
alguien conoce alguna función del api de windows o bien un metodo para poder implementar este tipo de presentación visual a todas las consultas sql que impliquen un tiempo de proceso importante.. ?

duilioisola
16-10-2008, 13:29:58
Supongo que la forma mas sencilla de todas es crear un form que de el mensaje. Antes de lanzar la consulta lo muestras y una vez que tengas el resultado lo quitas.

Pon todo en un bloque try...finally, para que a pesar de que falle, esconda el Form del mensaje.

- Este Form, puede tener un Label en medio y centrado, que puedas cambiar para cada consulta "lenta".
- Tambien puede tener un timer, que muestre algún movimiento (un punto, dos puntos, tres puntos, un punto ...)
- O puede tener una barra que se vaya llenando con ese timer.


begin
{...}
try
FCalculando.Show;
FCalculando.LabelMensaje.Caption := 'Calculando Totales de ????. Espere por favor...';
{Ejecutar calculo largo};
{...}
finally
FCalculando.Hide;
end;
{...}
end;

coso
16-10-2008, 15:03:32
Hola, podrias hacer aparecer una form y eliminarla al acabar el proceso. En la seccion trucos existe uno TTimer (http://www.clubdelphi.com/trucos/index.php?id=468&scroll=0&scrollb=0) que te muestra el tiempo que ha pasado y el que resta para finalizar un proceso. Lo puse tal cual, y es bastante mejorable, pero de funcionar funciona. saludos.