home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 06 / tricks / posdemo.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1991-02-21  |  4.2 KB  |  160 lines

  1. (* ------------------------------------------------------ *)
  2. (*                     POSDEMO.PAS                        *)
  3. (*           (c) 1991 Martin Wölker & TOOLBOX             *)
  4. (* ------------------------------------------------------ *)
  5. PROGRAM position_demo;
  6.  
  7. USES Position, Crt;
  8.  
  9. CONST
  10.   demos : BYTE = 0;
  11.  
  12.   PROCEDURE wait;
  13.   VAR
  14.     c : CHAR;
  15.   BEGIN
  16.     GotoXY(20,25);
  17.     Write('Drücken Sie eine Taste um fortzufahren');
  18.     c := ReadKey;
  19.     DelLine;
  20.   END;
  21.  
  22.   PROCEDURE wait2;
  23.   VAR
  24.     c : CHAR;
  25.   BEGIN
  26.     Inc(demos);
  27.     GotoXY(62,1); Write('┌─────────────────┐');
  28.     GotoXY(62,2); Write('│  Demo ',demos,' fertig  │');
  29.     GotoXY(62,3); Write('└─────────────────┘');
  30.     GotoXY(20,25);
  31.     TextBackground(demos);
  32.     Delay(500);
  33.     IF demos IN [0,1,4] THEN
  34.       TextColor(LightGray)
  35.     ELSE
  36.       TextColor(Black);
  37.     Write(' Drücken Sie eine Taste um fortzufahren ');
  38.     c := ReadKey;
  39.     DelLine;
  40.   END;
  41.  
  42. VAR
  43.   i, j : BYTE;
  44.  
  45. BEGIN
  46.   Randomize;
  47.   ClrScr;
  48.   WriteLn('╔════════════════════════╗');
  49.   WriteLn('║ Sichern einer Position ║');
  50.   WriteLn('╚════════════════════════╝');
  51.   GotoXY(10,10); save_position;
  52.   WriteLn('Der Anfang dieses Textes wurde gesichert.');
  53.   wait;
  54.   restore_position;
  55.   WriteLn('Nun kann man an der gleichen Stelle etwas ',
  56.           'ausgeben.');
  57.   wait2;
  58.   ClrScr;
  59.   WriteLn('╔═════════════════════════════╗');
  60.   WriteLn('║ Sichern mehrerer Positionen ║');
  61.   WriteLn('╚═════════════════════════════╝');
  62.   j:= Random(5)+4;
  63.   FOR i:= 1 TO j DO BEGIN
  64.     GotoXY(Random(6)*13+2,Random(21)+4);
  65.     save_position;
  66.     Write('Position',i:3);
  67.   END;
  68.   wait;
  69.   GotoXY(1,1);
  70.   WriteLn('╔═══════════════════════════════════╗');
  71.   WriteLn('║ Positionen rückwärts restaurieren ║');
  72.   WriteLn('╚═══════════════════════════════════╝');
  73.   liste_weg := FALSE;
  74.   FOR i := 1 TO j DO BEGIN
  75.     wait;
  76.     restore_position;
  77.     Write('alte Position');
  78.   END;
  79.   wait2;
  80.   GotoXY(1,1);
  81.   WriteLn('╔═══════════════════════════════════════════╗');
  82.   WriteLn('║ Positionen nochmal rückwärts restaurieren ║');
  83.   WriteLn('╚═══════════════════════════════════════════╝');
  84.   liste_weg := TRUE;
  85.   FOR i := 1 TO j DO BEGIN
  86.     wait;
  87.     restore_position;
  88.     Write('ganz Position');
  89.   END;
  90.   wait2;
  91.   ClrScr;
  92.   WriteLn('╔═════════════════════════════╗');
  93.   WriteLn('║ Sichern mehrerer Positionen ║');
  94.   WriteLn('╚═════════════════════════════╝');
  95.   liste_ist := fifo;
  96.   j := Random(5)+4;
  97.   FOR i := 1 TO j DO BEGIN
  98.     GotoXY(Random(6)*13+2,Random(21)+4);
  99.     save_position;
  100.     Write('Position',i:3);
  101.   END;
  102.   wait;
  103.   GotoXY(1,1);
  104.   WriteLn('╔═══════════════════════════════════════════',
  105.           '════════════╗');
  106.   WriteLn('║ Sichern mehrerer Positionen und vorwärts ',
  107.           'restaurieren ║');
  108.   WriteLn('╚══════════════════════════════════════════',
  109.           '═════════════╝');
  110.   liste_ist := fifo;
  111.   FOR i := 1 TO j DO BEGIN
  112.     wait;
  113.     restore_position;
  114.     Write('alte Position');
  115.   END;
  116.   wait2;
  117.   ClrScr;
  118.   WriteLn('╔═════════════════════════════╗');
  119.   WriteLn('║ Sichern mehrerer Positionen ║');
  120.   WriteLn('╚═════════════════════════════╝');
  121.   j := Random(5)+2;
  122.   FOR i := 1 TO j*2 DO BEGIN
  123.     GotoXY(Random(6)*13+2,Random(21)+4);
  124.     save_position;
  125.     Write('Position', i:3);
  126.   END;
  127.   wait;
  128.   GotoXY(1,1);
  129.   WriteLn('╔══════════════════════════════════════════',
  130.           '═════════════╗');
  131.   WriteLn('║ Sichern mehrerer Positionen und vorwärts ',
  132.           'restaurieren ║');
  133.   WriteLn('╚══════════════════════════════════════════',
  134.           '═════════════╝');
  135.   FOR i := 1 TO j DO BEGIN
  136.     wait;
  137.     restore_position;
  138.     Write('alte Position');
  139.   END;
  140.   GotoXY(1,1);
  141.   WriteLn('╔════════════════════════════════════════════',
  142.           '═════════════╗');
  143.   WriteLn('║ Alte Positionen mitten drin auch rückwärts ',
  144.           'restaurieren ║');
  145.   WriteLn('╚════════════════════════════════════════════',
  146.           '═════════════╝');
  147.   liste_ist := stack;
  148.   FOR i := 1 TO j DO BEGIN
  149.     wait;
  150.     restore_position;
  151.     Write('alte Position');
  152.   END;
  153.   wait2;
  154.   NormVideo;
  155. END.
  156. (* ------------------------------------------------------ *)
  157. (*                Ende von POSDEMO.PAS                    *)
  158.  
  159.  
  160.