Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2013-05

About Delay

1 message · 1 person ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Omar D. González R.

El 18-05-2013 18:11, lazarus-es-request en lists.lazarus.freepascal.org escribi�:

Show quoted text 24 lines
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

Reply by email