Q:  How do I pass arrays into a procedure?

A:  Well,

procedure ThisAintIt(green: array[1..2] of char)

isn't it.  Here is an example of how to do it:

type
  PArr = ^TArr;
  Tarr = array[1..10] of integer;

procedure foo(PassingItIn: PArr);
var i: integer;
begin
  for i := 1 to 10 do PassingItIn^[i] := i;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  TheArr: PArr;
begin
  TheArr := AllocMem(sizeof(TArr));
  foo(TheArr);
  for i := 1 to 10 do Listbox1.items.add(IntToStr(TheArr^[i]));
  FreeMem(TheArr, sizeof(TArr));
end;