[Lazarus] Having more than 32 elements in a set (TGridOptions of TCustomGrid)

taazz taz at evosi.eu
Sun Nov 30 01:56:15 CET 2014


On 05/11/2014 20:12 μμ, Werner Pamler wrote:
> Thanks to all. What I learn from the answers is that a set *can* 
> contain more than 32 elements, but exceeding this number would break 
> existing forms. And the option of not specifying a default value would 
> break existing forms as well because their non-stored defaults would 
> not be there any more.
*Wrong *the default values are not stored because there is no need to 
store them being there would effectively have no value what so ever.
Keep in mind that the default specifier in a property is there to inform 
the streaming mechanism for the default value *_and only to inform_*
You are required to make sure that the property is initialized to that 
value in the constructor of the class otherwise you will have problems 
mostly with expecting one behavior and getting an other.

>
> Anyway, I know a solution for my problem: 

You only have an assumed problem not a real one try it for your self.

> Introduce an additional property "RangeSelectMode=(rsmSingleRange, 
> rsmMultiRange)" which allows to fine-tune the behavior of the 
> goRangeSelect option of the grid. I'll post a corresponding patch 
> maybe later today or tomorrow.
>
> The next guy wanting to add a new option to TGridOptions, however, 
> will face that same issue again. Maybe new options will have to be 
> split off into a new OptionsEx property.
>
There are reasons to do that mostly it has to do with support of 
external specifications like COM/ActiveX but there is no reason for the 
internal stuff (yet anyway) not until you have more than 255 values.






More information about the Lazarus mailing list