[fpc-pascal] Is it only properties that can have defaults in type definitions?

Michael Van Canneyt michael at freepascal.org
Thu Mar 14 17:10:37 CET 2013



On Thu, 14 Mar 2013, Frank Church wrote:

> On 14 March 2013 15:38, Martin <lazarus at mfriebe.de> wrote:
>> On 14/03/2013 15:35, Frank Church wrote:
>>>
>>> Is it only properties that can have defaults in type definitions?
>>> ie can private fields be only initialized after creation, eg in the
>>> constructor?
>>>
>>> Is something like this allowed
>>>
>>> TSomeObject = TObject
>>> private
>>>    FBoolean: Boolean default false;
>>> public
>>>    FPublishedBoolean: Boolean read FBoolean write FBoolean default false;
>>> end;
>>>
>>>
>>>
>>
>> "default" does NOT initialize the property.
>>
>> It is used for streaming. This value will not be wriiten to an lfm for
>> example, and if loaded, then it acts as default
>>
>
> Can other fields private, protected etc have defaults set for them in
> the type defintion, or does that have to be only after creation?

Default values must always be set in the constructor.

The only thing that is guaranteed is that the instance data is zeroed out.

Michael.



More information about the fpc-pascal mailing list