Man könnte den ersten Vorschlag von
toms sogar noch etwas erweitern:
Delphi-Quellcode:
type
TMyRecord = record
Test_1 : string;
Test_2 : string;
Test_3 : string;
Integer_1 : Integer;
Integer_2 : Integer;
procedure Clear;
end;
procedure TMyRecord.Clear;
begin
Finalize (Self);
FillChar (Self, SizeOf(Self), 0);
end;
// Anwendung:
var
MyRecord : TMyRecord;
begin
MyRecord.Clear;
end;
In der Methode
Clear müssen vor dem abschließenden FillChar-Befehl alle (dynamischen) Daten im Record freigegeben werden.
Finalize selbst berücksichtigt nur die referenzgezählten Daten. Speicherbereiche, die mit
New o.ä. angelegt wurden, sowie Objekte, die durch Aufruf eines Konstruktors erzeugt wurden, muss man also auch manuell freigeben.
Gruß Hawkeye