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?
Hello,
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.
--
--
_______________________________________________
lazarus mailing list
[email protected]
https://lists.lazarus-ide.org/listinfo/lazarus