[Lazarus] Having more than 32 elements in a set (TGridOptions of TCustomGrid)
Rik van Kekem
rik at graficalc.nl
Wed Nov 5 18:35:55 CET 2014
So it's not that the set can't hold more than 32 items...
It's just you can't use *default* for a property if the set's base has
more than 32 values.
This is from the Delphi manual (but I'm sure it also applies to FPC):
<quote>
The default and nodefault directives are supported only for ordinal
types and for set types, *provided the upper and lower bounds of the
set's base type have ordinal values between 0 and 31;*
</quote>
Source: http://docwiki.embarcadero.com/RADStudio/XE6/en/Properties
So the error message is not misleading at all ;)
<quote>
Error: Property can’t have a default value
Set properties or indexed properties cannot have a default value.
</quote>
Maybe you can skip the default command for property and set the default
in Create. (Will that work correctly?)
Werner Pamler wrote:
> Recompiling the package LCLBase fails with the error: "Property can't
> have a default value". I think this message is misleading and confusing
> because the true issue seems to me that the set of TGridOptions now
> contains 33 elements. In my understanding, the elements of a set
> correspond to the bits of an integer. In a 32-bit OS, therefore, a set
> can only contain 32 elements - there is one too many now...
>
> Is this interpretation correct?
More information about the Lazarus
mailing list