home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 01 / leser / cgablend.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1990-11-05  |  2.3 KB  |  58 lines

  1. (* ------------------------------------------------------ *)
  2. (*                    CGABLEND.PAS                        *)
  3. (*                 Turbo Pascal ab 5.0                    *)
  4. (*           (c) 1990 Gerald Arend & TOOLBOX              *)
  5. (* ------------------------------------------------------ *)
  6. PROGRAM CGABlend;
  7.  
  8. USES Crt, Graph;
  9.  
  10. TYPE
  11.   Block = ARRAY[1..8192] OF BYTE;   { für 100 Grafikzeilen }
  12.  
  13. VAR
  14.   Gd, Gm, r  : INTEGER;
  15.   ScreenOdd  : Block ABSOLUTE $B800:$0000; { gerade Zeilen }
  16.   ScreenEven : Block ABSOLUTE $B800:$2000; { ungerade Zln. }
  17.   PufferEven,
  18.   PufferOdd  : Block;                  { Puffer für Grafik }
  19.  
  20. CONST
  21.   Zeit = 100;               { Verzögerung in Millisekunden }
  22.  
  23. BEGIN
  24.   Gd := CGA;
  25.   Gm := CGAC0;
  26.   InitGraph(Gd, Gm, '');
  27.   r := 5;
  28.   SetBkColor(LightGray);            { Hintergrund hellgrau }
  29.   WHILE r < 100 DO BEGIN                  { Beispielgrafik }
  30.     SetColor((R DIV 10) MOD 3 + 1);       { konzentrische  }
  31.     Circle(160, 100, r);                  { Kreise         }
  32.     Inc(r, 5);
  33.   END;
  34.   REPEAT
  35.     Delay(Zeit);                                { Stufe 1: }
  36.     SetBkColor(DarkGray);         { Hintergrund verdunkeln }
  37.     Delay(Zeit);                                { Stufe 2: }
  38.     Move(ScreenEven, PufferEven, 8000);    { gerade Zeilen }
  39.     FillChar(ScreenEven, 8000, 0);   { sichern und löschen }
  40.     Delay(Zeit);                                { Stufe 3: }
  41.     SetBkColor(Black);               { Hintergrund schwarz }
  42.     Delay(Zeit);                                { Stufe 4: }
  43.     Move(ScreenOdd, PufferOdd, 8000);    { ungerade Zeilen }
  44.     FillChar(ScreenOdd, 8000, 0);    { sichern und löschen }
  45.     Delay(Zeit);            { ... und das ganze rückwärts: }
  46.     SetBkColor(DarkGray);          { Hintergrund aufhellen }
  47.     Delay(Zeit);                           { gerade Zeilen }
  48.     Move(PufferEven, ScreenEven, 8000);    { restaurieren  }
  49.     Delay(Zeit);
  50.     SetBkColor(LightGray);       { Hintergrund noch heller }
  51.     Delay(Zeit);                         { ungerade Zeilen }
  52.     Move(PufferOdd, ScreenOdd, 8000);    { restaurieren    }
  53.   UNTIL KeyPressed;
  54.   CloseGraph;
  55. END.
  56. (* ------------------------------------------------------ *)
  57. (*                 Ende von CGAROT.PAS                    *)
  58.