Passend zum Default gibt es auch NoDefault, um einen zuvor deklarierten Default zu entfernen.
Delphi-Quellcode:
// Varianten mit Specifiers
property MyValue: Single read FMyValue write FMyValue nodefault stored GetMyValueStored;
property MyValue: Single read FMyValue write FMyValue default 5; // das geht nicht, weil Single kein ordinaler Typ ist
// Varianten mit Attributen
[NoDefault]
property MyValue: Single read FMyValue write FMyValue stored GetMyValueStored;
[Default(5)]
property MyValue: Single read FMyValue write FMyValue;
// und auch Stored gibt es als StoredAttribute (aber muß ja nicht sein)
[NoDefault, Stored('GetMyValueStored')]
property MyValue: Single read FMyValue write FMyValue;
DefaultAttribute
NoDefaultAttribute
StoredAttribute
Und ja, das was man als Default deklariert hat, muß auch wirklich dem entsprechen, was der Default der Klasse ist, sonst hat man viel Spaß.
Aber gibt es überhaupt einen Default-Default?
Wenn kein Default angegeben wurde, was hier der Fall ist, dann ist es doch eigentlich ein "Fehler", wenn Delphi hier eigenmächtig "irgendeinen" einen Default verwendet.