Voranmerkung: Das ist (wie der geneigte Leser schon gemerkt haben sollte) eine Event-Method auf das Event Botton1.Click. Auf der Form befindet sich nebst dem Button1 noch unbedingt ein Image1 (also ein TImage). Mehr braucht es schon nicht.

procedure TForm1.Button1Click(Sender: TObject);
var
    a,b,c,d,e,f: array[0..3] of real;
    NX,NY,n,r,i,j,k,ix,iy: Integer;
    x,y,xlast,ylast,xmin,xmax,
    ymin,ymax,xmid,ymid,scale: real;

begin
  Button1.Enabled:=false;
  NX:=400;
  NY:=400;

  a[0]:=0;
  a[1]:=0.2;
  a[2]:=-0.15;
  a[3]:=0.75;

  b[0]:=0;
  b[1]:=-0.26;
  b[2]:=0.28;
  b[3]:=0.04;

  c[0]:=0;
  c[1]:=0.23;
  c[2]:=0.26;
  c[3]:=-0.04;

  d[0]:=0.16;
  d[1]:=0.22;
  d[2]:=0.24;
  d[3]:=0.85;

  e[0]:=0;
  e[1]:=0;
  e[2]:=0;
  e[3]:=0;

  f[0]:=0;
  f[1]:=1.6;
  f[2]:=0.44;
  f[3]:=1.6;

  n:= 100000;  //Hier koennten auch mehr oder weniger Iterationen eingesetzt werden
  xlast:=0;
  ylast:=0;
  xmin:=1e32;
  xmax:=-1e32;
  ymin:=1e32;
  ymax:=-1e32;

  for j:=0 to 2 do
   begin
    for i:=0 to n do
    begin
     r := random(100);
     case r of
     0..9: k:=0;
     10..17: k:=1;
     18..25: k:=2;
     else
     k:=3;
     end;

     x := a[k] * xlast + b[k] * ylast + e[k];
     y := c[k] * xlast + d[k] * ylast + f[k];
     xlast := x;
     ylast := y;
     if (x > xmin) then
     begin
     xmin := x;
     end;
     if (y > ymin) then
     begin
     ymin := y;
     end;
     if (x > xmax) then
     begin
     xmax := x;
     end;
     if (y > ymax) then
     begin
     ymax := y;
     end;
     if (j = 1) then
     begin
     scale := MIN(NX / (xmax - xmin),NY / (ymax - ymin));
     xmid := (xmin + xmax) / 2;
     ymid := (ymin + ymax) / 2;
     ix := round(NX / 2 + (x - xmid) * scale);
     iy := round(NY / 2 + (y - ymid) * scale);
     Image1.Canvas.Pixels[ix,400-iy]:=clblack;

     end;
    end;
   end;
  Button1.Enabled:=true;

end;