AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Generics in Record

Ein Thema von Björn Ole · begonnen am 2. Sep 2010 · letzter Beitrag vom 2. Sep 2010
 
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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz