home *** CD-ROM | disk | FTP | other *** search
- (* MCGADEMO.PAS *)
- (* (C) 1989 TOOLBOX & Jan Laitenberger *)
- (* Das Programm demonstriert die Anwendung *)
- (* der MCGA-UNIT in Turbo Pascal 4.0/5.x *)
-
- program MCGADEMO;
-
-
- uses crt, MCGA;
-
- VAR x, y, color, rot, gruen, blau : INTEGER;
- c : CHAR;
- regbuf : ColorRegBuffer;
- i : LONGINT;
-
- begin
- initgraphic;
- clearscreen (203);
- for x:=16 to 160 do
- box (x,x,319-x,199-x,x);
- x := 16; y := 1;
- repeat
- inc (x,y);
- if (x =16) or (x = 31) then y := -y;
- setcursor (10,12);
- print (' MCGA = 256 Farben ',x);
- delay (20);
- until keypressed;
- c := readkey;
-
- color := 1;
- FOR y := 0 TO 199 DIV 5 DO BEGIN
- line(0,100,319,y*5,color);
- INC(color);
- END;
-
- FOR y := 0 TO 199 DIV 5 DO BEGIN
- line(0,y*5,319,100,color);
- INC(color);
- END;
-
- Delay(2000);
-
- mcgasave('test2.scr');
- clearscreen(255);
- Delay(2000);
- mcgaload('test2.scr');
- Delay(2000);
-
- colorbox(0,190,319,199,150);
- (* Eine Farbe variieren *)
- c := #0;
- i := 0;
- WHILE (i < 262144) AND (c = #0) DO BEGIN
- INC(i);
- readcolor(150,rot,gruen,blau);
- INC(blau);
- IF blau > 63 THEN BEGIN
- blau := 0;
- INC(gruen);
- IF gruen > 63 THEN BEGIN
- gruen := 0;
- INC(rot);
- IF rot > 63 THEN BEGIN
- rot := 0;
- END;
- END;
- END;
- setcolor(150,rot,gruen,blau);
- IF KeyPressed THEN BEGIN c := ReadKey; END;
- END;
-
- clearscreen (255);
- FOR x := 16 TO 160 DO BEGIN
- box(x,x,319-x,199-x,x);
- END;
-
-
- (* Alle Farben "cyclen" *)
- rot := 0;
- gruen := 0;
- blau := 0;
- FOR color := 0 TO 255 DO BEGIN
- regbuf[color].b := BYTE(blau);
- regbuf[color].g := BYTE(gruen);
- regbuf[color].r := BYTE(rot);
- INC(blau,15);
- IF blau > 63 THEN BEGIN
- blau := 0;
- INC(gruen,15);
- IF gruen > 63 THEN BEGIN
- gruen := 0;
- INC(rot,15);
- IF rot > 63 THEN BEGIN
- rot := 0;
- END;
- END;
- END;
- END;
-
- setcolorblock(0,regbuf,256);
-
- WHILE NOT KeyPressed DO BEGIN
- FOR color := 0 TO 255 DO BEGIN
- INC(regbuf[color].b,15);
- IF regbuf[color].b > 63 THEN BEGIN
- regbuf[color].b := 0;
- INC(regbuf[color].g,15);
- IF regbuf[color].g > 63 THEN BEGIN
- regbuf[color].g := 0;
- INC(regbuf[color].r,15);
- IF regbuf[color].r > 63 THEN BEGIN
- regbuf[color].r := 0;
- END;
- END;
- END;
- END;
- setcolorblock(0,regbuf,256);
- END;
-
- exitgraphic;
- end.