Wizzup, he doesn't set to zero then start filling it, infact there is no error. All I can suggest is that the array you are using it for hasn't had it's length defined.
Try this..
SCAR Code:
program Script;
var
Test : array of TPoint;
function FixPoints(ArrayVar : TPointArray) : TPointArray;
var
i : integer;
begin
i := getarraylength(ArrayVar);
setarraylength(Result, i);
i := 0;
repeat
Result[i].x := ArrayVar[i].x; //HERE'S MY ERROR :(
Result[i].y := (ArrayVar[i].y * -1) { + height } - 7;
i := i + 1;
writeln('doing for '+inttostr(i));
until(i = getarraylength(ArrayVar));
end;
begin
SetArrayLength(Test, 2);
FixPoints(Test);
end.