Thema: Delphi Generics in Record

Einzelnen Beitrag anzeigen

Benutzerbild von Björn Ole
Björn Ole

Registriert seit: 10. Jul 2008
166 Beiträge
 
Delphi XE Professional
 
#1

Generics in Record

  Alt 2. Sep 2010, 12:44
Hi,

ich beschäftige mich gerade etwas näher mit Generics und stehe vor einem Problem. Folgende Testklasse:
Delphi-Quellcode:
TRecObj<T> = class
type
  PRec = ^TRec;
  TRec = record
    ID: integer;
    Data: T;
  end;
private
  FRec: PRec;
public
  constructor Create(ID: integer; Data: T);
  destructor Destroy; reintroduce;
end;


constructor TRecObj<T>.Create(ID: integer; Data: T);
begin
  inherited Create;
  New(FRec);
  FRec.ID := ID;
  FRec.Data := Data; // schmeißt AV
end;

destructor TRecObj<T>.Destroy;
begin
  Dispose(FRec);
  inherited Destroy;
end;


myObj := TRecObj<string>.Create(-17, 'Hallo');
Das Record mag in diesem Beispiel nicht viel Sinn machen; ich möchte aber ein eigenes Listenobjekt programmieren, bei dem jedes Element aus so einem Record besteht.

Wenn ich mir jetzt ein neues TRecObj erstelle, bekomm ich eine AV (Read of address FFFFFFFB) bei der Zuweisung von Data. Benutze ich hier die Generics falsch? Warum funktioniert das so nicht?


Danke, Björn
  Mit Zitat antworten Zitat