Pascal/Turbo Pascal - Pulse <INTRO> para continuar

 
Vista:

Pulse <INTRO> para continuar

Publicado por Pascual (94 intervenciones) el 05/01/2005 00:24:46
Dándo los últimos retoques a mi práctica me ha surjido esta pequeña complicación, mi programa trabaja con listados que han de mostrarse en la pantalla pero si son muy largos (como es el caso) no se pueden ver ya que no entra todo en la pantalla y sólo se ve el final, lo que yo quiero es que la pantalla se llene con parte del listado y que cuando pulse INTRO continúe mostrando, así hasta que se llegue al final del listado. Para los que se acuerden de MS-DOS el efecto que busco es algo así como cuando se quería ver el contenido de un directorio muy grande y se usaba dir/p.
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:Pulse <INTRO> para continuar

Publicado por Ivanchuk (7 intervenciones) el 05/01/2005 03:39:01
Podes hacer un ciclo mostrando la lista y que se detenga esperando la tecla enter cuando el cursor se encuentra en la linea Hi(WindMax), para saber en que linea se encuentra el cursor en cada momento haces WhereY o WhereX. Todas estas son funciones de Crt, mira la ayuda cualquier cosa. Saludos...
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:Pulse &ltINTRO> para continuar

Publicado por Hurricane (12 intervenciones) el 05/01/2005 10:48:44
La solución anterior es efectiva hasta que el cursor llega al tope, ya que despés permanece ahí y el ENTER empezaría a ser solicitado por cada línea de datos que se despliegue.

Una opción es usar un contador, para que después de cierta cantidad de líneas desplegadas solicite el ENTER. Ej:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Programa Pausa;
 
Uses
    Crt;
 
Const
   MaxLin = 20;    {La pausa se genera cada 'MaxLin' líneas desplegadas}
 
Var
    Index :Word;   {Contador para la simulación de líneas desplegadas}
    Count :Word; {Va contando línea por línea...}
 
Pocedure LimpiaTeclado;
    Var
        Ch :Char;
    Begin
        While KeyPressed do Ch := ReadKey;
    End; {LimpiaTeclado}
 
Procedure LeeTecla;
    Var
        Ch :Char;
    Begin
        LimpiaTeclado;
        Write('Pulse ENTER...');
        Repeat
            Ch := ReadKey;
        Until Ch = #13;
        WriteLn;
End; {LeeTdcla}
 
{Cuerpo Principal}
Begin
    ClrScr;
    Count := 0;
    For Index := 1 to 100 do
        Begin
            WriteLn(Index, ') Esta es la línea número ', Index);
            Inc(Count);
            If ((Count Mod MaxLin)=0) then LeeTecla;
        End; {For}
End. {Pausa}
Espero te sea de utilidad. Saludos ;-)
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:Pulse <INTRO> para continuar

Publicado por Pascual (94 intervenciones) el 05/01/2005 17:42:54
Gracias, me ha sido de mucha utilidad.
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:Pulse <INTRO> para continuar

Publicado por Ivanchuk (1 intervención) el 05/01/2005 21:39:51
Es verdad :S, buena solución hurricane ;-)....
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