Como refrescar el form
Saludos. Tengo el siguiente problema. Quiero refrescar el form mientras activo el windows.beep (por ejemplo) para ver cuanto queda para que acabe el sonido. Pero solo se ve la barra de progreso en 0 cuando empieza y en 100 cuando acaba. Gracias a todos.
|
Hola,
Lo que puede estar ocurriendo es que una determinada tarea de tu aplicación está ocupando toda la cuota del procesador, si se puede decir así, de modo que la interfaz de tu aplicación "no responde", o se queda medio "congelada". Ante esto (hasta donde yo llego) se pueden tratar de hacer al menos dos cosas. La primera es separar aquella tarea que está ocasionando que nuestra aplicación se "congele", separarla, digo, en un hilo diferente. Pero esto implica trabajar con hilos, precisamente, y me temo que no soy yo el más adecuado para decir nada más, sino que es menester tener ciertas cuestiones en mente cuando se trabaja así. La segunda, que puede utilizarse en según qué casos (un buen número de ellos) es utilizar la popular instrucción "Application.ProcessMessages()"; De este modo nuestra aplicación se tomará un respiro, procesará los mensajes que tenga pendientes (también para su interfaz de usuario) y acaso solucione sin más el problema. Ahora bien, esto último suele usarse en "bucles", por ejemplo, tal que así:
No sé si podrías tú utilizar algo así en tu aplicación o qué te vendría mejor. A lo mejor a algún otro compañero se le ocurre otra cosa que decirte. ;) |
Solo para ejemplificar lo ya dicho por Dec;
Si el caso es usar Beep, desarrollo la idea;
El anterior "Beep" modificado solo produce sonidos con duración máxima de 65.5 segundos y una milesima de exactitud, la siguiente dura hasta 10.9 minutos con una centesima de exactitud;
Saludos |
La franja horaria es GMT +2. Ahora son las 12:37:07. |
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