Cómo hacer una pausa en la aplicación

5949 vistas

Existen dos maneras de hacer esto:
1. Usar el método Sleep
Sólo es necesario escribir Application.Sleep(tiempo) donde tiempo se especifica en milisegundos. Este método presenta la desventaja de no tratar los mensajes.
2. El método GetTickCount
El procedimiento GetTickCount nos informa sobre el número de milisegundos transcurridos desde la puesta en marcha del PC. El problema es que esta cantidad se almacena en un DWord y que, forzosamente llegará un día (49,7 días después del encendido del PC) en que volverá a cero. Para corregir este problema deberemos usar cardinales.



delphi
  1. var
  2.   Tc: Cardinal;
  3. begin
  4.   Tc := GetTickCount;
  5.   repeat
  6.     Application.ProcessMessages;
  7.   until Cardinal(GetTickCount - Tc) > {tiempo de espera en ms};
  8. end;



Es preferible la utilización de este segundo método debido a que no bloquea el proceso de los mensajes de Windows.