home *** CD-ROM | disk | FTP | other *** search
- (*========================================================*)
- (* TESTCOL.PAS v. 1.01 *)
- (* (C) 1993 J. Braun & DMV-Verlag *)
- (* Demoprogramm für die Unit XGRAPH *)
- (* ====================================================== *)
- (* Benötigt werden: *)
- (* Turbo Pascal ab Version 5.0, SVGA.BGI, TRIP.CHR, *)
- (* die Units XGRAPH.PAS und DRIVERS.PAS sowie die *)
- (* Standard-BGI-Treiber (CGA, EGAVGA ....). *)
- (* Treiber und Fonts müssen mit BINOBJ umgewandelt sein. *)
- (* Compileren mit: MAKE -fTESTCOL.MAK *)
- (*========================================================*)
- {$I xgraph.h} {$M 16384,0,524288}
-
- PROGRAM TestColors;
-
- USES
- Dos, Crt, Drivers, XGraph;
-
- VAR
- MaxCol, x, y, i : WORD;
- xp, m, gd, gm, d : INTEGER;
- s : STRING;
- ch : CHAR;
-
- PROCEDURE TSCRFontProc; EXTERNAL; {$L tscr.obj}
- PROCEDURE TriplexFontProc; EXTERNAL; {$L trip.obj}
-
- PROCEDURE Bar(x1, y1, x2, y2: WORD);
- VAR
- i: WORD;
- BEGIN
- IF gd = IBM8514 THEN
- FOR i := y1 TO y2 DO Line(x1, i, x2, i)
- ELSE
- XGraph.Bar(x1, y1, x2, y2);
- END;
-
- BEGIN
- d := RegisterBGIFont(@TSCRFontProc);
- d := RegisterBGIFont(@TriplexFontProc);
- DetectGraph(gd, gm);
- Initgraph(gd, gm, '');
- CASE Succ(GetMaxX) OF
- 320: m := 20;
- 640: m := 38;
- 720: m := 30;
- 800: m := 50;
- 1024: m := 60;
- END;
- MaxCol := Succ(GetMaxColor);
- CASE MaxCol OF
- 2 : x := GetMaxX DIV 2 - m;
- 4 : x := GetMaxX DIV 2 - 2 * m;
- 16: x := Succ(GetMaxX DIV MaxCol - m);
- ELSE x := 1;
- END;
- y := GetMaxY DIV 2 + 10;
- SetUserCharSize(3, 2, 2, 2);
- FontAttr := Outline;
- SetTextStyle(TSCRFont, HorizDir, UserCharSize);
- SetTextJustify(CenterText, CenterText);
- xp := TextHeight('Pp');
- OutTextXY(GetMaxX DIV 2, xp, 'Farbtabelle');
- SetTextStyle(TriplexFont, HorizDir, 2);
- FontAttr := Normal;
- OutTextXY(GetMaxX DIV 2, 2 * xp, '( Standard Palette )');
- OutTextXY(GetMaxX DIV 2, 3 * xp, GetModeName(gm));
- SetUserCharSize(2, 5, 1, 2);
- SetTextStyle(TriplexFont, HorizDir, UserCharSize);
- SetTextJustify(CenterText, TopText);
- FOR i := 0 TO Pred(MaxCol) DO BEGIN
- SetFillStyle(SolidFill, i);
- SetColor(i); Bar(x, y, x + m, y + m);
- SetColor(White); Rectangle(x, y, x + m, y + m);
- Inc(x, m); SetColor(White);
- Str(i: 2, s); OutTextXY(x - m DIV 2, y + m, s);
- END;
- SetUserCharSize(2, 5, 2, 5);
- SetTextStyle(TriplexFont, HorizDir, UserCharsize);
- SetTextJustify(CenterText, BottomText);
- OutTextXY(GetMaxX DIV 2, GetMaxY - Succ(TextHeight('Pp')),
- 'Ende mit beliebiger Taste');
- REPEAT UNTIL KeyPressed;
- ch := ReadKey;
- IF ch = #0 THEN ch := ReadKey;
- CloseGraph;
- END.
-
- (*========================================================*)
- (* Ende von TESTCOL.PAS *)
-