home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 06 / cgatr / pagetest.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1991-01-08  |  2.1 KB  |  89 lines

  1. (* ------------------------------------------------------ *)
  2. (*                    PAGETEST.PAS                        *)
  3. (* ------------------------------------------------------ *)
  4. PROGRAM PageTest;
  5.  
  6. {$R-,S-}
  7.  
  8. USES
  9.   Crt, Graph, CGAPage, Shading;
  10.  
  11. CONST
  12.   NEck = 3;
  13.   Meld : ARRAY [1..8] OF STRING =
  14.        ('Eine', 'Demonstration', 'fuer', 'acht',
  15.         'Grafikseiten', 'auf', 'CGA', '(c) HEM');
  16.  
  17. VAR
  18.   dx, dy    : ARRAY [1..NEck] OF INTEGER;
  19.   poly      : ARRAY [1..NEck] OF PointType;
  20.   c         : ARRAY [1..NEck] OF INTEGER;
  21.  
  22.   gd, gm, i, j, f, df, v : INTEGER;
  23.  
  24.   PROCEDURE CGADriverProc;     EXTERNAL; {$l CGA}
  25.   PROCEDURE SansSerifFontProc; EXTERNAL; {$l SANS}
  26.  
  27. BEGIN
  28.   Randomize;
  29.  
  30.   i := RegisterBGIdriver(@CGADriverProc);
  31.   i := RegisterBGIfont(@SansSerifFontProc);
  32.  
  33.   gd := CGA; gm := CGAhi;
  34.   InitGraph(gd, gm, '');
  35.   InitCGAPage(8, @CGADriverProc);
  36.   SetLineStyle(userbitln, 0, 1);
  37.  
  38.   FOR i := 1 TO NEck DO BEGIN
  39.     c[i]      := 0;
  40.     poly[i].x := 320;
  41.     poly[i].y := 100;
  42.     dx[i]     := 0;
  43.     dy[i]     := 0;
  44.   END;
  45.  
  46.   SetTextStyle(SansserifFont, horizdir, 4);
  47.   FOR i := 8 DOWNTO 1 DO BEGIN
  48.     UsePage(i);
  49.     OutTextXY(0, 0, Meld[i]);
  50.   END;
  51.  
  52.   v  := 0;
  53.   f  := 0;
  54.   df := 1;
  55.   SetFillStyle(solidfill, 0);
  56.  
  57.   REPEAT
  58.     UseShadeFill(f, 1);
  59.     FillPoly(NEck, poly);
  60.  
  61.     Inc(f,df);
  62.     IF f = 64 THEN df := -1;
  63.     IF f =  0 THEN df :=  1;
  64.     v := Succ(v) MOD 8;
  65.     ShowPage(Succ((v+7) MOD 8));
  66.     UsePage(v+1);
  67.  
  68.     FOR i := 1 TO NEck DO BEGIN
  69.       IF c[i] < 0 THEN BEGIN
  70.         c[i]  := Random(100);
  71.         dx[i] := 2*(Random(5)-2);
  72.         dy[i] := Random(5)-2;
  73.       END;
  74.       Inc(poly[i].x, dx[i]);
  75.       Inc(poly[i].y, dy[i]);
  76.       IF (poly[i].x >= 639) OR (poly[i].x <= 0) THEN
  77.         dx[i] := -dx[i];
  78.       IF (poly[i].y >= 199) OR (poly[i].y <= 0) THEN
  79.         dy[i] := -dy[i];
  80.       Dec(c[i]);
  81.     END;
  82.   UNTIL KeyPressed;
  83.  
  84.   ReInitCGAPage;
  85.   CloseGraph;
  86. END.
  87. (* ------------------------------------------------------ *)
  88. (*                 Ende von PAGETEST.PAS                  *)
  89.