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