variables with out parameters aren't checked. example bellow explains
procedure foo(const a: Integer; out b: Integer);
begin
showmessage(b.ToString); //"uninitialized"
b := somethingwith(a);
end;
var
a,b: integeR;
begin
a := 1;
b := 1; // not needed
foo(a,b);
end;