Einzelnen Beitrag anzeigen

tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#2

Re: TList und Typenumwalndlung

  Alt 17. Nov 2005, 20:31
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.
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat