home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 12 / praxis / graftest.mod < prev    next >
Encoding:
Text File  |  1990-08-15  |  3.0 KB  |  104 lines

  1. (* ------------------------------------------------------ *)
  2. (*                    GRAFTEST.MOD                        *)
  3. (*          (c) 1990 Rainer Hamann  &  TOOLBOX            *)
  4. (* ------------------------------------------------------ *)
  5. MODULE GrafTest;
  6.  
  7.   FROM Grafik IMPORT
  8.     ColArray,
  9.     GrafScreen, TextScreen, Plot, Line, xMaxScr, yMaxScr,
  10.     WriteText, WriteGrafText, ClearGrafScreen,
  11.     DefineGrafWindow, SelectGrafWindow, StoreGrafWindow,
  12.     RestoreGrafWindow, MoveGrafWindow, Colour,
  13.     PenColor, DotColor, Circle, Arc;
  14.  
  15.   FROM InOut IMPORT Read;
  16.  
  17. (*  IMPORT Break; *)
  18.  
  19.   VAR
  20.     c : CHAR;
  21.     xMitte, yMitte, m, n : INTEGER;
  22.     CA : ColArray;
  23.     (* die Zeichenketten für die Steuerzeichen dürfen nur
  24.        so lang deklariert werden, wie sie wirklich benötigt
  25.        werden, da das Ende über die Deklarationslänge
  26.        bestimmt wird *)
  27.     TextVorschub : ARRAY[0..1] OF CHAR;
  28.     GrafikSteuerZeichen, GrafikVorschub
  29.         : ARRAY[0..2] OF CHAR;
  30.  
  31. BEGIN
  32.   GrafScreen;
  33.   xMitte := xMaxScr DIV 2;
  34.   yMitte := yMaxScr DIV 2;
  35.   (* Fenster definieren *)
  36.   DefineGrafWindow(2, xMitte - 200, yMitte - 90,
  37.                       xMitte + 200, yMitte + 90);
  38.   DefineGrafWindow(3, xMitte - 100, yMitte - 70,
  39.                       xMitte + 100, yMitte + 70);
  40.   (* Punktraster *)
  41.   FOR n := 0 TO yMitte BY 10 DO
  42.     FOR m := 0 TO xMitte BY 10 DO
  43.       Plot(xMitte + m, yMitte + n);
  44.       Plot(xMitte - m, yMitte + n);
  45.       Plot(xMitte + m, yMitte - n);
  46.       Plot(xMitte - m, yMitte - n);
  47.     END;
  48.   END;
  49.   Read(c);
  50.   (* Circle- und Arc-Test *)
  51.   FOR n := 0 TO yMitte BY 10 DO
  52.     Circle(xMitte, yMitte, n);
  53.     Arc(0, yMitte, -45, 45, n);
  54.   END;
  55.   StoreGrafWindow(2);
  56.   Read(c);
  57.   (* Line-Test *)
  58.   ClearGrafScreen;
  59.   FOR m := 0 TO xMaxScr BY 7 DO
  60.     Line(m, 0, xMitte, yMitte);
  61.     Line(m, yMaxScr, xMitte, yMitte);
  62.   END;
  63.   FOR n := 0 TO yMaxScr BY 5 DO
  64.     Line(0, n, xMitte, yMitte);
  65.     Line(xMaxScr, n, xMitte, yMitte);
  66.   END;
  67.   (* Test für Farb-Palette *)
  68.   FOR n := 0 TO 15 DO
  69.     PenColor(CA[n]);
  70.     FOR m := 0 TO 39 DO
  71.       Line(n * 40 + m, 0, n * 40 + m, 30);
  72.     END;
  73.   END;
  74.   (* Write-Test *)
  75.   WriteText(10, 10,
  76.      'Text-Ausgabe mit "WriteText" wie auf dem Textschirm');
  77.   WriteGrafText(50, yMaxScr - 35, White,
  78.      'Text-Ausgabe mit "WriteGrafText" ');
  79.   Read(c);
  80.   (* Test für Store- und RestoreGrafWindow *)
  81.   StoreGrafWindow(3);
  82.   RestoreGrafWindow(2);
  83.   RestoreGrafWindow(3);
  84.   WriteGrafText(50, yMaxScr - 35, Black,
  85.   'Text-Ausgabe mit "WriteGrafText" ');
  86.   WriteGrafText(50, yMaxScr - 15, White,
  87.   'und wieder löschen');
  88.   Read(c);
  89.   (* Fenster verschieben *)
  90.   MoveGrafWindow(3, 50, 25);
  91.   (* linke obere Bildhälfte am Bildmittelpunkt spiegeln *)
  92.   FOR m := 0 TO xMitte DO
  93.     FOR n := 0 TO yMitte DO
  94.       PenColor(DotColor(m, n));
  95.       Plot(xMaxScr - m, yMaxScr - n);
  96.     END;
  97.   END;
  98.   Read(c);
  99.   TextScreen;
  100. END GrafTest.
  101. (* ------------------------------------------------------ *)
  102. (*                Ende von GRAFTEST.MOD                   *)
  103.  
  104.