Was aber auch geht ist
Code:
type
TMyDaten = Record
Bla : Integer;
Foo : boolean;
end;
var
LMyDaten :TMyDaten;
begin
LMyDaten = Default(TMyDaten); // Record wird Initialisiert (alle Felder auf 0)
LMyDaten.Bla := 42;
end;
Bla = 42 und Foo wäre False
Der Record wird wie eine lokale Variable behandelt (inclusive Speicher reservieren in Recordgröße und ohne Initialisierung) die auf den Stack abgelegt wird.
Records sind nix anderes als strukturierte Variablen.
Das gute an Records ist, das man sich nicht um das Freigeben des Speichers kümmern muss (Es sei denn man verwendet New())
Auch das kopieren von Records geht einfach durch Zuweisung (Achtung: Bei Pointer ,Klassen, variablen Arrays und Methodenreferenzfeldern wird nur die Adresse kopiert nicht der Inhalt)
Sie eignen sich gut als Übergabe und Resultparameter für Functionen und Proceduren.