Programación General > Pascal

 Segundos (#3).

(1/1)

_.B._:
A veces queremos detener el programa, mostrando información, por una cantidad de segundos.
Como el Delay es relativo a cada computador, delay (1000) no garantiza que transcurra 1 segundo (la solución a esto, o por lo menos, lo mas cercano a solucionarlo, lo demostraré mas adelante).
Diseñé el siguiente Procedure:


--- Código: Text ---    PROCEDURE Segundos (Seg:BYTE);              { Funciona para detener un programa por 'Seg' segundos.                Valores de 'Seg' mayores a 60 segundos pueden ocasionar                calculos de tiempo erroneos.                            }      VAR H1,H2,M1,M2,S1,S2,Cent1,Cent2:WORD;          S0:0..60;          S90:0..1;          S0B,Cent90B:BOOLEAN;      BEGIN        S0:=0;        S90:=0;        S0B:=FALSE;        Cent90B:=FALSE;        GETTIME (H1,M1,S1,Cent1);        INC (M1);        INC (S1);        INC (Cent1);        IF Cent1 > 90 THEN          BEGIN            Cent90B:=TRUE;            Cent1:=Cent1-90;            S90:=1          END;        IF S1 = 1 THEN          S0B:=TRUE;        REPEAT          GETTIME (H2,M2,S2,Cent2);          INC (M2);          INC (S2);          INC (Cent2);          IF (Cent2 > 90) AND (M1 = M2) AND Cent90B THEN            Cent2:=Cent2-90;          IF (S2 = 1) AND NOT S0B THEN            S0:=60;          S2:=S2+S0;        UNTIL (S2-S1 >= Seg+S90) AND (Cent2 >= Cent1)      END; 
NOTA: el programa o unidad que contengan a este Procedure, debe tener utilizar DOS (USES Crt,Dos;).

Bernardo L. :comp:

Enko:
Me la copie ya que parece ser muchisimo mas precisa que el Delay() del TP
 :comp: La inserte en mis programas y anduvo .
Voy a pasar por un siber a ver si no cambia  la duracion ( no tendria que cambiar si son segundos :rolleyes: ?)

Enko:
Ya lo comprobe ! :D
utilizando una pausa de 5 segundos anduvo igual en una maquina con un Athlon 1.700 GH  y otra con Pentium 750 MH

_.B._:
Great! :bravo:
A programar!.

Bernardo L. :comp:

TempWin:
Funciona perfectamente. Buen trabajo _.B._  :)

Navegación

[0] Índice de Mensajes

Ir a la versión completa