Eigentlich müsste das funktionieren:
Delphi-Quellcode:
function TKeywordStats.Get(Index: Integer):TStats;
var p:TStats;
begin
p := inherited Items[Index];
result:=p^;
end;
Alternativ:
Delphi-Quellcode:
type TPStats = ^TStats;
...
function TKeywordStats.Get(Index: Integer):TStats;
var p:TStats;
begin
result:= TPStats(inherited Items[Index]);
end;
Aber noch was zu deiner Add-Methode:
Du solltest nicht mit dem @-Operator arbeiten. Wenn man deiner Add-Methode ein Element übergibt, das z.B. nur als lokale Variable innerhalb der aufrufenden Prozedur existiert, zeigt dein pointer in der Liste anschließend ins Datennirwana. Erzeug lieber mit New einen neuen Zeiger, von dem weißt du dann garantiert, dass er auf eine "gültige" Speicheradresse verweist.