[Lazarus-es] About Delay

"Omar D. González R." omar.gonzalez en novacomp.cl
Dom Mayo 19 10:01:11 CEST 2013


El 18-05-2013 18:11, lazarus-es-request en lists.lazarus.freepascal.org 
escribió:
> Estimados colegas:
> estoy trabajando en una aplicacion, en una unit donde se hacen varios calculos, uno detras de otro.
>
> tengo un label donde puedo escribir, al final de cada rutina de calculo, algo similar a esto:
> lSecuencia.caption:=´Termine el calculo 1´;
>
> pero necesito un comando que detenga el avance del programa por lo menos 500 milisegundos, para que de tiempo a leer mensaje del label.
>
> conozco que hay un comando Delay(), pero no se como usarlo. Si me pueden ayudar, se los voy a agradecer.´
>
> saludos,
>
> Ing. Héctor F. Fiandor Rosario
> hfiandor en infomed.sld.cu
>
> Para esos casos siempre me resultó mejor usar DoEvents (VB6 o C#) o
> Application.ProcessMessages (Delphi), ya que lo que necesitas no es una
> pausa en tu proceso sino una indicación de que hay que prestarle atención a
> la interfaz gráfica.
>
> Si el calculo es demasiado largo, te recomiendo correrlo en un thread
> separado para que tu aplicación no parezca congelarse.
>
>
Como te dicen en la respuesta 3 (adjunta), Con 
Application.ProcessMessages, debiera ser suficiente sin necesidad de 
utilizar Delay.
Recuerdo que hace un tiempo tuve que procesar grandes cantidades de 
registroa contra una BD SQLServer, y al intentar leer solamente, no 
tenía ni que mirar el PC para que no se cayera, me refiero que no podía 
utilizar ni siquiera otras aplicaciones, dado que apenas movía el 
cursor, aparecía en el título de la vetana "No responde". Esta fué mi 
solución.

http://wiki.freepascal.org/Multithreaded_Application_Tutorial/es

Saludos,

-- 
Atentamente,

Omar González R.
Novacomp Ltda.
Móvil 56-9-95319230





More information about the Lazarus-es mailing list