Pascal/Turbo Pascal - la hora de pascal

 
Vista:

la hora de pascal

Publicado por angeli (2 intervenciones) el 13/11/2003 03:42:30
hice un programa en pascal, pero no se como sacar la rayita de abajo titilando, si alguien sabe bueno gracias, otra cosa alguien sabe como poner el tiempo en un programa para pascal? porque el que hice yo, el tiempo se congela y cambia cada vez que hago algo~!y yo quiero que corra el tiemo siempre~! gracias~!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:la hora de pascal

Publicado por César Augusto (182 intervenciones) el 14/11/2003 00:05:41
Para que tengas eso debes de interceptar la Int 8h que es la del temporizador y programarla tú mismo, o bien dentro de un ciclo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:la hora de pascal

Publicado por duda (2 intervenciones) el 14/11/2003 03:43:19
que es la int 8h, y como se hace
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:la hora de pascal

Publicado por Diego Romero (786 intervenciones) el 14/11/2003 11:29:11
Lo que César Augusto propone es "enganchar" un procedimiento en la cola de interrupciones del MS-DOS, Turbo Pascal tiene una directiva para esto llamada Interrupt y dos procedimientos que ayudan a poner el procedimiento en la cola y luego restaurar la cola (cuando ya no necesites que ese procedimiento se ejecute.
Concretamente lo que necesitas hacer es esto:
uses Dos, Crt;
var
BackInt1C: Pointer;
{$F+,S-,W-}
procedure ManejadorTiempo; interrupt;
var
hh,mm,ss,cc:word;
begin
GetTime(hh,mm,ss,cc);
gotoxy(65,1);
Write(hh,':',mm,':',ss);
end;
{$F-,S+}
begin
ClrScr;

GetIntVec($1C,BackInt1C);
SetIntVec($1C,Addr(ManejadorTiempo));

writeln('Ves la hora en la esquina superior derecha?');
ReadKey;

SetIntVec($01C,BackInt1C);

end.

Vas a tener algunos problemas cuando hagas muestras en la pantalla usando GotoXY porque este procedimiento hace uso de una Int de la BIOS que modifica la posición del cursor y eso interfiere con el GotoXY que está en el manejador que muestra la hora, lo ideal es no usar el GotoXY en el procedimiento ManejadorTiempo sino que hacer una escritura directa en la memoria de video pero eso ya es más complicado y escapa al ejemplo requerido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar