[Lazarus] Proper implementation of TDataLink descendant

Luiz Americo Pereira Camara luizmed at oi.com.br
Fri Aug 5 06:11:15 CEST 2011


On 4/8/2011 22:13, Alexander Klenin wrote:
> On Fri, Aug 5, 2011 at 11:52, Luiz Americo Pereira Camara
> <luizmed at oi.com.br>  wrote:
>> If i understand correct this would be a public property.
>>
>> This can lead to conflict with the internal state.
>>
>> User set Mask to some events than DisableControls set only some (different)
>> events then BlockRead set to not send any events
>>
>> Restoring the initial state is possible with a stack like structure but
>> would add some complexity. So i would add the bare minimum to implement
>> dsBlockRead
> I suggest simply to declare that Mask is "volatile", i.e. it will be
> overwritten by changes to State.
> Alternatively, there could be separate Mask and InternalMask, the union of which
> will be actually applied.

I implemented BlockReadSize

See http://bugs.freepascal.org/view.php?id=19897

The patch is minimal and do what you (and I) need without much complexity

In fact it took more time to do the Delphi testing and to compile fpc 
trunk than the time to code the patch itself

Luiz




More information about the Lazarus mailing list