program vyplne;

uses
  graph;

const
  { nadefinovani vlastnich vyplni: }
  vypln1: FillPatternType                 { ۰ -> 33   ->   1 }
        = (33, 2, 68, 2, 33, 2, 4, 0);    { ۰ ->  2   ->   3 }
                                          { ۰۰ -> 68   ->   7 }
  vypln2: FillPatternType                 { ۰ ->  2   ->  15 }
        = (1, 3, 7, 15, 31, 63, 127, 255);{ ۰ -> 33   ->  31 }
                                          { ۰ ->  2   ->  63 }
                                          { ۰ ->  4   -> 127 }
var                                       {  ->  0   -> 255 }
  gd, gm: integer;       { promenne pro grafiku - graf. ovladac a graf. mod }

begin
  gd := detect;                    { detekce vhodneho grafickeho ovladace }
  InitGraph(gd, gm, 'd:\tp\bgi');  { inicializace grafiky }
  if graphResult <> grOK then begin
    write('Grafiku se nepodarilo nastartovat.');
    readln;
    halt;
  end;

  { vykreslime zluty obdelnik: }
  SetColor(yellow);                  { zmena aktivni barvy na zlutou }
  rectangle(150,80,300,200);         { vykresleni obdelnika se zlutymi obrysy }
  readln;

  { vyplnime ho prvnim vlastnim vzorem: }
  SetFillPattern(vypln1, lightblue); { zmena typu vyplne }
  FloodFill(200, 150, yellow);       { vyplnime oblast, hranicni barva je zluta }
  readln;

  { vykreslime obdelnik vyplneny druhym vlastnim vzorem: }
  SetFillPattern(vypln2, cyan);      { zmena typu vyplne }
  bar(400, 80, 550, 200);            { vyplneny obdelnik bez obrysu }
  readln;

  { prekreslime hranice prvniho obdelnika na svetle modrou a vyplnime ho
    svetle modrozelenou tak, aby puvodni vzor zustal zachovan: }
  setcolor(lightblue);               { zmena aktivni barvy na svetle modrou }
  rectangle(150,80,300,200);         { obdelnik }
  SetFillStyle(solidFill, lightcyan);{ zmena stylu vyplne na plny vzor, barva svetle modrozelena }
  FloodFill(200, 150, lightblue);    { vyplnime oblast s hranicni barvou svetle modrou }
  readln;

  { ukoncime praci v grafickem rezimu: }
  closegraph;
end.