du hast da was falsch verstanden: array-properties haben mit arrays nur die zugriffssyntax per [] gemeinsam, sowas wie Memo1.Lines[3].
dennoch sind es properties, und du brauchst funktionen, um darauf zuzugreifen, und denen wird der index mit übergeben.
wenn du die länge ändern willst, dann musst du das über eine zweite property tun. oder, viel besser, du setzt die länge in der set-prozedur der array-property:
Code:
procedure SetValue(const Index: Integer; const Value: string);
begin
if High(FValues) < Index then
SetLength(FValues, Index+1);
FValues[Index] := Value;
end;
lies dir in der hilfe unbedingt auch den oberen teil durch. dort sind beispielzugriffsmethoden beschrieben.