I don't think the following is intended? (it compiles with trunc).
Note the property index is a var param
TForm1 = class(TForm)
private
function GetFoo(var Index: Integer): Boolean;
public
property Foo[var Index: Integer]: Boolean read GetFoo;
end;
implementation
function TForm1.GetFoo(var Index: Integer): Boolean;
begin
Result := True;
end;