Mam prostą klasę komponentu z właściwości Boolean:Klasa boolean Ustaw na TRUE daje fałszywy na czasie wykonywania
TmyClass = class(TComponent)
private
fSomeProperty: boolean;
published
property SomeProperty: boolean
read fSomeProperty
write fSomeProperty
default true;
end;
I umieścić go na moim formularzu, należy ustawić go na true (SomeProperty jest ustawiony na false, dlaczego?), Ale kiedy próbuję uzyskać dostęp do SomeProperty z run-time, to daje mi fałsz. Dlaczego to jest takie?
+1; Nie znalazłem niczego przydatnego w 'default'' z wyjątkiem tego, że w Inspektorze obiektów, gdy zmienisz wartość jakiejś właściwości z 'default', jest ona wyróżniona pogrubioną czcionką; jeśli zmienisz go z powrotem na "domyślny", pogrubiony styl zostanie usunięty. –
Jak powiedział @Aain, przeczytaj sekcję Specyfikatory magazynu w pomocy lub DocWiki. To mówi: 'Uwaga: Wartości właściwości nie są automatycznie inicjowane do wartości domyślnej. Oznacza to, że domyślna dyrektywa steruje tylko wtedy, gdy wartości właściwości są zapisywane w pliku formularza, ale nie jest wartością początkową właściwości nowo utworzonego wystąpienia. " –
Aby to naprawić, dodaj kod konstruktora' FSomeProperty: = true' –