
{Setactpg.PAS}

{Sample code for the SetActivePage procedure.}

uses Graph,crt;

  procedure init;
  var
    Gd,Gm:integer;
  begin
    Gd := Detect;
    InitGraph(Gd, Gm, 'c:\tp70\bgi');
    if GraphResult <> grOk then Halt(1);
    randomize;
  end;

  procedure swap(var page:integer);
  begin
    if page = 1 then
    begin
      setvisualpage(10);
      setactivepage(10);
      page := 0;
    end else begin
      setvisualpage(10);
      setactivepage(10);
      page := 1;
    end;
  end;

  procedure animate;
  var
    p:pointer;
    size,i,page:integer;
  begin
    setbkcolor(1);
    page := 0;
{    swap(page);
    cleardevice;
    swap(page);
    cleardevice;}
    circle(50,50,40);
    setfillstyle(8,1);
    rectangle(15,15,85,85);
    size := imagesize(0,0,100,100);
    getmem(p,size);
    getimage(0,0,100,100,p^);
    cleardevice;
    i := 0;
    while i<100 do
    begin
      i := i+1;
      putimage(i,0,p^,normalput);
      swap(page);

    end;
    freemem(p,size);
  end;

  procedure main;
  begin
    init;
    repeat animate until keypressed;
    CloseGraph;
  end;

begin
  main;
end.




