home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* PAGETEST.PAS *)
- (* ------------------------------------------------------ *)
- PROGRAM PageTest;
-
- {$R-,S-}
-
- USES
- Crt, Graph, CGAPage, Shading;
-
- CONST
- NEck = 3;
- Meld : ARRAY [1..8] OF STRING =
- ('Eine', 'Demonstration', 'fuer', 'acht',
- 'Grafikseiten', 'auf', 'CGA', '(c) HEM');
-
- VAR
- dx, dy : ARRAY [1..NEck] OF INTEGER;
- poly : ARRAY [1..NEck] OF PointType;
- c : ARRAY [1..NEck] OF INTEGER;
-
- gd, gm, i, j, f, df, v : INTEGER;
-
- PROCEDURE CGADriverProc; EXTERNAL; {$l CGA}
- PROCEDURE SansSerifFontProc; EXTERNAL; {$l SANS}
-
- BEGIN
- Randomize;
-
- i := RegisterBGIdriver(@CGADriverProc);
- i := RegisterBGIfont(@SansSerifFontProc);
-
- gd := CGA; gm := CGAhi;
- InitGraph(gd, gm, '');
- InitCGAPage(8, @CGADriverProc);
- SetLineStyle(userbitln, 0, 1);
-
- FOR i := 1 TO NEck DO BEGIN
- c[i] := 0;
- poly[i].x := 320;
- poly[i].y := 100;
- dx[i] := 0;
- dy[i] := 0;
- END;
-
- SetTextStyle(SansserifFont, horizdir, 4);
- FOR i := 8 DOWNTO 1 DO BEGIN
- UsePage(i);
- OutTextXY(0, 0, Meld[i]);
- END;
-
- v := 0;
- f := 0;
- df := 1;
- SetFillStyle(solidfill, 0);
-
- REPEAT
- UseShadeFill(f, 1);
- FillPoly(NEck, poly);
-
- Inc(f,df);
- IF f = 64 THEN df := -1;
- IF f = 0 THEN df := 1;
- v := Succ(v) MOD 8;
- ShowPage(Succ((v+7) MOD 8));
- UsePage(v+1);
-
- FOR i := 1 TO NEck DO BEGIN
- IF c[i] < 0 THEN BEGIN
- c[i] := Random(100);
- dx[i] := 2*(Random(5)-2);
- dy[i] := Random(5)-2;
- END;
- Inc(poly[i].x, dx[i]);
- Inc(poly[i].y, dy[i]);
- IF (poly[i].x >= 639) OR (poly[i].x <= 0) THEN
- dx[i] := -dx[i];
- IF (poly[i].y >= 199) OR (poly[i].y <= 0) THEN
- dy[i] := -dy[i];
- Dec(c[i]);
- END;
- UNTIL KeyPressed;
-
- ReInitCGAPage;
- CloseGraph;
- END.
- (* ------------------------------------------------------ *)
- (* Ende von PAGETEST.PAS *)