Cómo realizar una espera programada

A veces, nos interesa realizar una determinada espera controlada.

Usando la función Api GetTickCount(void) sería una de la formas para realizar esto, para ello crearemos un procedimiento y boton, el cual al pulsar realiza la espera. Para ello Teclearemos:

void Mi_Espera(int Segundos)
{
// DWORD GetTickCount(VOID);
Form1->Button1->Enabled=false; // Esta linea se puede quitar es para ver el tiempo
DWORD TiempoEntrada=GetTickCount();
do;while((GetTickCount()-TiempoEntrada)<(Segundos*1000));
Form1->Button1->Enabled=true; // Esta linea se puede quitar es para ver el tiempo
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Mi_Espera(5); // En este caso, el ejemplo es de 5 segundos.
}

Indicar que se puede poner entre medias del bucle de espera la siguiente linea:

Application->ProccessMessages();
// Esta linea permite refrescar el form, asi como seguir procesando la
// cola de mensajes de Windows

Por Ultimo recordar que la función GetTickCount devuelve ( tipo de dato DWORD ) el número de segundos transcurridos desde que arranque el sistema.

Bueno… Recordar que existe una instrucción llamada Sleep(long), es una Api, que se encarga de realizar una espera. Recibe como parametro un long que indica el tiempo en milisegundos.

Ejemplo: Sleep(1000) ‘ Realiza una espera de 1 Segundo