[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