Items ist TArray<TMyRecord>
Damit müsste es gehen. Beim Zugriff euf ein Array-Element bekommt man den originalen Record und keine Kopie. Erst der Rückgabewert von RecordAusListe ist dann eine Kopie. Mein Beispiel könnte dann so aussehen:
Delphi-Quellcode:
type
PMyRecord = ^TMyRecord;
Function RecordAusListe(aName:String) : PMyRecord;
Begin
Result := @MyRecordLIST.Items[IndexOfName(aname)];
end;
Procedure Tuwas;
var myRec:PMyRecord;
Begin
myrec := RecordAusListe('Peter');
myRec.Hitpoints := 5;
// oder
RecordAusListe('Peter').Hitpoints := 5; // das ^ ist nicht notwendig, das denkt sich der Compiler dann.
end;