Selbst wenn es funktionieren würde, würde es dich nicht helfen, denn das "Result" ist eine Kopie des Inhalts.
Man kann der TList<> ein neues Items-Property verpassen, welches einen Pointer raus gibt, der auf das Items im internen Record zeigt.
Ist natürlich nicht standardmäßig eingebaut, da es ein Sonderfall und außerdem "unsicher" ist.
Dann doch eher die TList abbauen und veränderbare Felder als eigene Property einbauen
und intern dann jeweils
Delphi-Quellcode:
procedure SetFeldAbc(Index: Integer; Value: TAbc);
var
Temp: T;
begin
//InternesArray[Index].Abc := Value;
Temp := Items[Index];
Temp.Abc := Value;
Items[Index] := Temp;
end;
Du willst einen Record, also mußt du auch mit den Nachteilen leben.
Alternativ kann man auch ein TArray<TDeinRecord> verwenden.
Aber die Arraymanipulation (mit Ausnahme des Copy und einer binären Suche für sortierte Arrays) sind im "älteren" Delphi noch spärlich integriert, vorallem Delete und Insert.