Einzelnen Beitrag anzeigen

CTest

Registriert seit: 13. Apr 2010
Ort: Gehren
33 Beiträge
 
#1

Zugriffsverletzung Pointer dereferenzieren

  Alt 30. Jul 2011, 14:50
Hallo,

Ich habe eine Klasse TFlaeche mit der Eigenschaft Item.
Ich möchte Pointer auf Double-Werte dereferenziert in eine TDoubleList schreiben und den Pointer auf den Eintrag in der Liste in ein BTree schreiben. Beim Zugriff auf die Eigenschaft, zeigt der Pointer dann zwar noch auf die Adresse des Eintrags, es kommt aber beim dereferenzieren zur Zugriffsverletzung.

Code:
property Item[const Idx: Integer]: Pointer read GetItem write SetItem; default;
procedure TFlaeche.SetItem(const Idx: Integer; P: Pointer);
var
  idx: Integer;
begin
  FData.Add(Double(P^));
  FDataIdx[idx] := @FData.List^[FData.Count-1];
end;

function TFlaeche.GetItem(const Idx: Integer): Pointer;
begin
  Result := FDataIdx[idx]
end;

Zugriff:
var  d : Double;
...
  d := Double(FFlaeche[idx]^);
Kann mir jemand sagen, was da schief läuft?

vielen Dank

Geändert von CTest (30. Jul 2011 um 22:37 Uhr)
  Mit Zitat antworten Zitat