home *** CD-ROM | disk | FTP | other *** search
-
- PROGRAM graphik; (* Zeigt alle Grafikmodi *)
-
- USES Crt, MSGraph;
- CONST modes: ARRAY [0..11] OF Integer =
- (_MRes4Color, _MResNoColor, _HResBW, _HercMono,
- _MRes16Color, _HRes16Color, _EResNoColor,_EResColor,
- _VRes2Color, _VRes16Color,_MRes256Color, _OResColor);
-
- VAR vc : _VideoConfig;
- ch, key : Char;
- which : Char;
- a : Integer;
-
- PROCEDURE print_menu; (* Auswahlmenü *)
- BEGIN
- WriteLn('Wählen Sie einen Grafikmodus');
- WriteLn('Beenden mit "x"');
- WriteLn;
- WriteLn('0 _MRes4Color');
- WriteLn('1 _MResNoColor');
- WriteLn('2 _HResBW');
- WriteLn('3 _HercMono');
- WriteLn('4 _MRes16Color');
- WriteLn('5 _HRes16Color');
- WriteLn('6 _EResNoColor');
- WriteLn('7 _EResColor');
- WriteLn('8 _VRes2Color');
- WriteLn('9 _VRes16Color');
- WriteLn('a _VRes256Color');
- WriteLn('b _OResColor');
- END;
-
- PROCEDURE show_mode(which:Char); (* Grafik mit dem Modus *)
- VAR nc, i : Integer;
- height : Integer;
- width : Integer;
- mode : String;
- r : Real;
- e, m : Integer;
-
- BEGIN
- mode := which;
- IF (mode < '0') OR (mode > '9') THEN
- IF mode = 'a' THEN mode := '10'
- ELSE IF mode = 'b' THEN mode := '11'
- ELSE Halt; (* Prozedur verlassen *)
- Val(mode, r, e);
- m := Trunc(r);
- a := _SetVideoMode( modes[m] );
- IF a <> 0 THEN
- BEGIN
- _GetVideoConfig( vc );
- nc := vc.NumColors;
- width := vc.NumXPixels DIV nc;
- height := vc.NumYPixels DIV 2;
- FOR i := 1 TO (nc - 1) DO
- BEGIN
- _SetColor( i );
- _Rectangle( _GFillInterior, i * width,
- 0, ( i + 1 ) * width, height );
- END;
- END
- ELSE
- BEGIN
- WriteLn('Videoadapter ',which,' nicht vorhanden.');
- WriteLn('Weiter mit der Eingabetaste.');
- END;
- ReadLn; (* Warten auf Eingabetaste *)
- a := _SetVideoMode( _DefaultMode );
- print_menu;
- END;
-
- BEGIN (* Hauptprogramm *)
- key := ' ';
- _ClearScreen( _GClearScreen );
- print_menu;
- WHILE ( key <> 'x' ) DO
- BEGIN
- key := ReadKey;
- show_mode( key );
- END;
- END.
-
-