Hi, I cannot find any documentation about TMaskUtils.ValidateInput function (unit MaskUtils). AFAICS Delphi does not have such a class? (ref: http://docwiki.embarcadero.com/Libraries/XE6/en/System.MaskUtils)
There are some bugreports about this unit in Mantis which got me interested. See the attached demo program. It outputs: C:\Users\Bart\LazarusProjecten\ConsoleProjecten\bugs\maskutils>mutest Mask : "###" Value: "ABCD" VI : " " (Shouldn't this fail?) Mask : "999" Value: "ABCD" VI : " " (Shouldn't this fail?) Mask : "000" Value: "ABCD" ValidateInput Failed Mask : "LLL" Value: "1234" ValidateInput Failed Mask : "lll" Value: "1234" VI : " " (Shouldn't this fail?) Mask : "AAA" Value: "[{|/" ValidateInput Failed Mask : "aaa" Value: "[{|/" VI : " " (Shouldn't this fail?) I am the maintainer of the Lazarus MaskEdit unit. I find the results rather confusing and inconsistent with Lazarus/Delphi MaskEdit behaviour. Note: When the mask contains mask-characters that mean "value must be of type XYZ, but not required" the ValidateInput accepts any input. The same characters in MaskEdit (both Lazarus and Delphi) interpret this as: "if you put anything in that place it must be of type XYZ, but you may leave this place empty (e.g. a blank)". Basically ValidateInput now treats '#', '9', 'l' and 'a' as if it were 'c' (any character allowed here). This seems wrong to me. However, since the function lacks any documentation one can argue that current behaviour is correct. To me the (IMO more logical) behaviour of the ValidateInput function could be described as the result of these actions in a LCL/VCL program: - have a MaskEdit1: TMaskEdit - do MaskEdit1.EditMask := Mask - do MaskEdit1.Text := Value - do MaskEdit1.ValidateEdit - if no exception is raised then the result will be MaskEdit1.EditText, but with all "SpaceChar" repkaced by #32. I.o.w. the function shall raise an exception it Value (after appllying Mask to it) does NOT match the Mask. So, is it a bug? If so, I'll open a ticket in Mantis for it (and the discussion should then move there). Bart
mutest.lpr
Description: Binary data
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal