[Lazarus] Attn José: TWindowsMask oddity?

José Mejuto joshyfun at gmail.com
Mon Nov 1 12:21:16 CET 2021

El 31/10/2021 a las 17:12, Bart via lazarus escribió:
> Hi José,
> In TWindowsMask.Compile (as in your TMaskUTF8Windows class) you do a
> call to EscapeSpecialChars on the modified mask.
> This will escape a.o. any '[' and ']'  character, so ranges and sets
> are not possible to use in the mask anymore.
 > Why did you disable ranges and sets in the Windows implementation?


The target in *Windows classes is to mimic the old fashion CMD masks, 
and CMD masks does not have ranges or sets.

When I implemented that fnuction the code does not allow disabling 
features, so now that code can be changed to disable ranges, sets and 
escape char instead escaping the chars.

> And another question: why do you call Compile in the constructor for
> TWindowsMask (TMaskUTF8Windows in your original)?

LCL's TMask raises syntax errors (or others, I can not recall) at 
creation time and in my code the syntax check is at Compile time so I 
call compile to raise an exception if needed. There is no performance 
loss as Compile should not be called again unless the mask is changed 
via the property.


More information about the lazarus mailing list