AXNumValidatedTF is a Xojo TextField subclass (32/64 bits) for Windows, macOS and Linux allowing the input validation of a defined numeric range, using the system Locale settings for decimal and grouping text formatting.
- Raise Events when the entered value is in / out of Range (active catching / propagation of the value).
- Optionally displays a message Dialog when the entered value is out of range.
- Optionally stays in focus when the entered value is out of range.
- Use of Locale settings for Grouping and Decimal separators.
- Adaptive formatting during the value validation.
- Instance ToolTip / HelpTag set to the accepted value Range
- Set the length of the decimal part for Real numbers.
- IsInRange property to passively check if the value is inside the defined range.
- Xojo API 2.0 / API 1.0 versions of the Class.
- macOS / Windows / Linux (32/64 bits) compatible.
Among other features, the user can set the kind of numerical input (Integer or Real), Minimum and Maximum values for the accepted numerical input, the decimal length for real numbers, and the default value for the field. It also provides properties to enforce the input of a numerical value in the defined range (the focus stays in the field) and the optional display of an error message dialog.
As part of the validation process, AXNumValidatedTF properly formats the displayed number, including the use of the Grouping and Decimal character defined in the system Locale settings, the deletion of left side zeroes and even trying to fix the incorrect use of the Grouping and Decimal characters as part of the input from the user (for example, “10,00.32” is formatted as “1,000.32” after the validation when the “,” character is set for number Grouping and “.” as the decimal separator).
AXNumValidatedTF formats the Minimum and Maximum values, showing them as a hint in the ToolTip (API 2.0) or HelpTag (API 1) for each of the instances used in the Layout of the App.
Besides the usual Methods and Properties available in a TextField, AXNumValidatedTF adds its own Properties, Methods and Events to simplify the access and notification of the entered values. For example:
IsInRange As Boolean
Is a Property set to True when the entered value is in the defined Range, and False otherwise.
For those cases when an active notification or propagation of the value is needed, it also provide the following Event Handlers:
ValueInRange (Value As Double). Fires when the entered value is inside the defined numeric range for the field.
ValueOutOfRange (Value As Double). Fires when the entered value is not in the defined numeric range for the field.