Einzelnen Beitrag anzeigen

CocoPops
(Gast)

n/a Beiträge
 
#1

Record "finalisieren"

  Alt 2. Apr 2014, 15:02
Gemeinde.

Es tut mir schrecklich leid, wenn ich nicht die richtigen Ausdrücke und Worte finde für mein Problem.

Ich habe ein packed Record, etwa so:
Delphi-Quellcode:
type
 PData = ^TData;

 TData = packed record
   sBeispielVar: String;
end;
und folgendermaßen erzeuge ich einen neuen Datensatz, wenn erforderlich und speichere ihn/einen Verweis zum ihm (?) in einer TList:
Delphi-Quellcode:
var
 Data: PData:
begin
 New(Data);
 Data^.sBeispielVar := 'Test';
 DataList.Add(Data);
end;
Zuvor habe ich einen Eintrag mit DataList.Delete(X); gelöscht und Data finalisiert: finalize(Data^); .
Aber finalize scheint nicht thread-safe zu sein.

Die Frage ist: wird bei DataList.Delete(X); der komplette Datensatz Data, der an dieser Stelle X gespeichert ist, mit gelöscht?
  Mit Zitat antworten Zitat