Die optionalen Direktiven stored, default und nodefault sind Speicherangaben. Sie haben keinerlei Auswirkungen auf die Funktionsweise des Programms, sondern steuern lediglich die )Verwaltung der Laufzeit-Typinformationen. Genauer gesagt bestimmen sie, ob die Werte der published-Eigenschaften in der Formulardatei (
DFM) gespeichert werden.
Nach der Angabe stored muß der Wert True oder False, der Name eines Booleschen Feldes oder der Name einer parameterlosen Methode folgen, die einen Booleschen Wert zurückgibt. Ein Beispiel:
property Name: TComponentName read FName write SetName stored False;
Wird eine Eigenschaft ohne die Angabe stored deklariert, entspricht dies der Definition stored True.
Nach default muß eine Konstante angegeben werden, die denselben Datentyp wie die Eigenschaft hat:
property Tag: Longint read FTag write FTag default 0;
Mit Hilfe des Bezeichners nodefault kann ein geerbter default-Wert ohne Angabe eines neues Wertes außer Kraft gesetzt werden. default und nodefault werden nur für Ordinal- und Mengentypen unterstützt, bei denen die Ober- und Untergrenze des Basistyps einen Ordinalwert zwischen 0 und 31 hat. Wenn eine solche Eigenschaft ohne default oder nodefault deklariert wird, gilt sie als mit nodefault deklariert. Reelle Zahlen, Zeiger und Strings besitzen den impliziten default-Wert von 0, nil bzw. '' (einen leeren String).
Beim Speichern einer Komponente werden die Speicherbezeichner ihrer published-Eigenschaften überprüft. Wenn sich der aktuelle Wert einer Eigenschaft von ihrem default
-Wert unterscheidet (oder kein default-Wert vorhanden ist) und stored True ist, wird der Wert gespeichert. Treffen diese Bedingungen nicht zu, wird der Wert nicht gespeichert.
Hinweis: Bei Array-Eigenschaften werden Speicherangaben nicht unterstützt. default hat bei diesem Eigenschaftstyp eine andere Bedeutung (siehe Array-Eigenschaften).