ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage properties / Properties associated with windows, pages and controls
  • Numeric controls (except for the currency controls)
  • Currency controls
  • Currency + Euro controls
  • Date controls
  • Time controls
  • DateTime controls
  • Duration controls
  • Text controls in the report editor
  • Type of input mask
  • Regular expressions in the input masks
  • Limitations
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
The InputMask property is used to:
  • get the input mask.
  • set the input mask (from the masks available for the type).
The InputMask property applies to all controls that allow input or display text:
  • an Edit control.
  • a group of Edit controls.
  • an editable Combo Box.
  • a column in a Table control,
  • a cell in a Table control,
  • a progress bar,
  • a formatted static control.
The InputMask property also applies to Calculated and Static controls in reports.
Remark: The input mask of a control is defined in the window or report editor, in the "General" tab of the control description.
Input mask
For more details on the different input masks available and their characteristics, see Input mask.
Example
// Modify the mask of "EDT_CustomerName"
EDT_CustomerName.InputMask = maskUpper
// Modify the mask of the 1st table row for the COL_Price column
TABLE_Table1.COL_Price[1].InputMask = "9999,99"
// The mask is taken into account by the displayed value
Info(TABLE_Table1.COL_Price[1].DisplayedValue)
Syntax

Getting the input mask of a control Hide the details

<Result> = <Control used>.InputMask
<Result>: Constant or character string
Input mask of the specified control. The input mask depends on the type of control. For more details, see remarks.
<Control used>: Control name
Name of the control to be used.

Changing the input mask of a control Hide the details

<Control used>.InputMask = <New input mask>
<Control used>: Control name
Name of the control to be used.
<New input mask>: Constant, character string or InputMask variable
New input mask for the specified control. This mask can correspond to:
  • A string or constant, specifying the mask to use.
    The input mask depends on the type of control. For more details, see remarks.
WINDEV Mobile In the window editor, a regular expression can be used to create the mask of Edit and combo Box controls: to do so, use the "regexp:" string before the regular expression. For more details, see remarks.
Remarks

Numeric controls (except for the currency controls)

1. Preset input masks
maskBitcoinNumeric input mask used for Bitcoins. The Bitcoin symbol is displayed.
WINDEV Mobile This constant is not available.
maskFileSizeNumeric mask for the file and disk sizes.
Remark: The change of unit (from KB to MB for example) is performed for each multiple of 1024. Therefore, the mask may display 1003 KB.
maskScientificNumeric input mask for scientific notation.
WINDEV Mobile This constant is not available.
maskSystemNumeralNumeric mask used by the system.
Corresponds to the mask selected in the system regional settings ("Regional options" in the control panel).

Examples:
// File size mask
EDT_Edit1.InputMask = maskFileSize
EDT_Edit1 = 5681234 // Displays 5.68 MB
// Bitcoin mask
EDT_Edit2.InputMask = maskBitcoin
EDT_Edit2 = 5681234 // Displays 0.05 681 234 B
// Scientific mask
EDT_Edit3.InputMask = maskScientific
EDT_Edit3 = 5681234 // Displays 5.681234E+06
2. Custom input masks
The input masks are defined via the following characters: "9", ".", ",", "+" and "-", "$" and space characters. For example: "99.999,99".
In display mode, the decimal and thousand separators as well as the symbol defined for the language are taken into account.
In the code (regardless of the language):
  • " " (space) is replaced with the thousand separator.
  • "," (comma) is replaced with the decimal separator.
  • "$" is replaced with the currency symbol (write "$$" to avoid this substitution).
3. Specific custom input masks
  • Using the % symbol:
    Caution: Up to version 90028, the value assigned to the control through programming was displayed as it was, followed by the % character.
    From version 90033, the valued assigned to the control through programming is multiplied by 100 and the "%" character is displayed. To restore the operating mode of the earlier versions, write "%%" to display the % character without multiplying the value by 100.
    Example:
    • Assigning a value to the control programmatically:
      EDT_Edit1.InputMask = "999,9%"
      EDT_Edit1 = 0.562 // Displays 56.2 %
       
      EDT_Edit1.InputMask = "999,9%%"
      EDT_Edit1 = 0.562 // Displays 0.562 %
    • Input in the control by the user:
      • Mask 99.99%, value entered: 19.6, value displayed: 19,6%, valued handled through programming: 0,196.
      • Mask 99.99%%, value entered: 19.6, value displayed: 19,6%, valued handled through programming: 19.6.
  • Using brackets: displaying the negative numbers.
    Example:
    EDT_Edit1.InputMask = "(999 999)"
    EDT_Edit1 = -1234      // Displays (1 234)
    EDT_Edit1 = 1234       // Displays 1 234
  • Using the - sign at the end of the string: displaying negative numbers (ability to write "--" to display the - sign at the end of string).
    Example:
    EDT_Edit1.InputMask = "999 999 -"
    EDT_Edit1 = -1234      // Displays 1 234-
  • Multiple input mask: input mask used to define the format of positive numbers, the format of negative numbers, the value if 0 is used, the value if NULL is used. The following syntax is used:
    <Format of positive numbers>;<Format of negative numbers>;<Value if 0>;<Value if NULL>

    Example:
    EDT_Edit1.InputMask = "999 999;-999 999;0;<NULL>"
    EDT_Edit1 = -1234      // Displays - 1 234

    Remark: You can specify a color using [<Color>] next to the desired mask. <Color> can correspond to:
    • one of the following constants: Red, Green, Blue, Black, White, Yellow, Orange.
    • a hexadecimal value in "#BBGGRR" format.
      Example:
      EDT_Edit1.InputMask = "999 999;-999 999[Red];0;<NULL>"
      EDT_Edit1 = -1234      // Displays - 1 234 in red
       
      EDT_Edit1.InputMask = "999 999;-999 999[ #FF0000];0;<NULL>"
      EDT_Edit1 = -1234      // Displays - 1 234 in blue

      Remark: The color specified in the input mask takes precedence over the Color property. It is ignored if the control is grayed.
Remarks:
  • Using 0 in the input mask:
    • If you want to pad the number with zeros on the left, use "0" on the left of the mask. For example:
      EDT_Edit1.InputMask = "099.999,99"
      EDT_Edit1 = 23.50 // Displays 023.5
    • If you want to pad the decimal part of the number to with zeros, use "9" to the right of the decimal point. For example:
      EDT_Edit1.InputMask = "9999,000"
      EDT_Edit1 = 12 // Displays 12.00
      EDT_Edit1 = 12,368 // Displays 12.368 (the value is not rounded)
  • To force the signs, use the "+" character on the left. For example: "+9999".

Currency controls

The input masks have the same type as the numeric masks. The difference is found in the precision: the currencies have 17 significant digits for the integer part and up to 6 digits for the decimal part.
For example: "99 999 999 999 999 999,999999".
Remark: A preset mask can also be used for the Currency controls:
maskSystemCurrencyCurrency mask used by the system. Corresponds to the mask selected in the system regional settings ("Regional options" in the control panel).

Currency + Euro controls

The input masks have the same type as the currency masks. The dollar character ("$") can be added into the mask to display the current currency.
For example: "999,99 $" will display "250,25 F" if the current currency is the French Franc.

Date controls

The input masks for Date controls are:
  • "DD/MM/YYYY"
  • "DD/MM/YY"
  • "DDD DD"
  • "MM/DD/YYYY"
  • "MM/DD/YY"
  • "YYYY/MM/DD"
  • "YY/MM/DD"
  • "DD/MM/YYYY HH:MM:SS"
  • "MM/DD/YYYY HH:mm:SS"
  • "DD/MM/YYYY HH:mm:SS:CCC"
  • "MM/DD/YYYY HH:mm:SS:CCC"
  • "DDDD DD MMMM YYYY"
  • "Dddd DD Mmmm YYYY"
  • "Dddd DD Mmm YYYY"
  • DD (corresponding to the day of the week in digits, for example: 12)
  • "DDDD" (corresponding day of the week, e.g. "Thursday"). The case used depends on the language options of the project.
  • "Dddd" (day of the week with the first letter in uppercase, e.g.: Monday)
  • "dddd" (day of the week with the first letter in lowercase, e.g.: monday)
  • "DDD" (abbreviation for the day of the week, "Thu" for example). The case used depends on the language options of the project.
  • "Ddd" (abbreviation of the day of the week with the first letter in uppercase, e.g.: Mon)
  • "ddd" (abbreviation of the day of the week with the first letter in lowercase, e.g.: mon)
  • MM (month in digits, for example: 12)
  • "MMMM" (non-abbreviated month, for example "January"). The case used depends on the language options of the project.
  • "Mmmm" (month spelled out with the first letter in uppercase, e.g.: January)
  • "mmmm" (month spelled out with the first letter in lowercase, e.g.: january)
  • "MMM" (abbreviation of the month, "Jan" for example). The case used depends on the language options of the project.
  • "Mmm" (abbreviation of the month with the first letter in uppercase, e.g.: Jan)
  • "mmm" (abbreviation of the month with the first letter in lowercase, e.g.: jan)
  • "YYYY" (year on four digits, "2001" for example)
  • "YY" (last two digits of the year, "01" for example)
  • the date defined by the project.
    The date defined by the project depends on the date format selected in the parameters of the project language:
    • on the "Project" tab, in the "Project" group, click "Description".
    • display the "Languages" tab then the linguistic options regarding the date.
These masks can be combined. For example: "Ddd DD Mmmm YYYY at HH:mm" will return a result in the following format: "Thu 01 February 1979 at 21:35".

Time controls

The input masks for the time controls are:
  • "HH:MM".
  • "HH h MM".
  • "HH:MM:SS".
  • "HH:MM:SS AM": Used to manage the time in AM/PM format.
  • "HH:MM:SS:CC".
  • The preset mask corresponds to the system time. The system time depends on the mask selected in the regional system setings ("Regional options" in the control panel).
    maskSystemTimeMask used by the system for the time.

DateTime controls

To specify a DateTime input mask, you must:
  1. Switch the type of the control (or table column) to Date ("Details" tab in the description window of the control or column).
  2. Change the input mask of this control or column ("Details" tab in the control or column description window, or InputMask property).

Duration controls

The following elements can be used to define a custom mask (case sensitive). To present the custom masks, let's take a duration equal to 0 day 04 hours 15 minutes 03 seconds and 412 thousandths of a second:
  • +1: only the most significant unit will be displayed (the number of hours in our example).
  • +2: only the two most significant units will be displayed (the number of hours and the number of minutes in our example).
    Specify '+3' or '+4' to display the three or four most significant units.
  • D: the number of days will be displayed if this number is greater than 0 (the number of days will not be displayed in our example).
  • H: the number of hours will be displayed if this number (or if the number of days) is greater than 0. If this number contains a single digit, this digit will be displayed (the number of hours will be '4' in our example).
  • HH: the number of hours will be displayed if this number (or if the number of days) is greater than 0. If this number contains a single digit, this digit will be preceded by '0' (the number of hours will be '04' in our example).
  • M: the number of minutes will be displayed if this number (or the number of days, or the number of hours) is greater than 0. If this number contains a single digit, this digit will be displayed (the number of minutes will be '15' in our example).
  • MM: the number of minutes will be displayed if this number (or the number of days, or the number of hours) is greater than 0. If this number contains a single digit, this digit will be preceded by '0' (the number of minutes will be '15' in our example).
  • S: the number of seconds will be displayed if this number (or if the number of days, or the number of hours, or the number of minutes) is greater than 0. If this number contains a single digit, this digit will be displayed (the number of seconds will be '3' in our example).
  • SS: the number of seconds will be displayed if this number (or if the number of days, or the number of hours, or the number of minutes) is greater than 0. If this number contains a single digit, this digit will be preceded by '0' (the number of seconds will be '03' in our example).
  • CC: the number of hundredths of second will be displayed (the number of hundredths of second will be '41' in our example).
  • CCC: the number of thousandths of second will be displayed (the number of thousandths of second will be '412' in our example).
Remark: If the separator corresponds to the ":" character, the letter corresponding to the most significant unit will be added ('h' for hour, 'm' for minute, 's' for second, 'cs' for hundredths of a second and 'ms' for thousands of a second).
Universal Windows 10 AppiPhone/iPadIOS Widget

Text controls in the report editor

The masks defined in the report editor are as follows ("General" tab of the control description):
maskFUpperFirst letter in uppercase character.
maskLowerAll in lowercase characters.
maskUpperAll in uppercase characters.

Type of input mask

Caution: A mask can be replaced with a mask of the same type. For example, the input mask of a DATE control cannot be replaced by the input mask of a TIME control.
Assigning an incorrect input mask will trigger an error message.
Android

Regular expressions in the input masks

The regular expressions used in this property must not be the ones used in MatchRegularExpression.
In input masks, regular expressions prevent the input of certain characters or sequences of characters.
In MatchRegularExpression, regular expressions are used to check the string format.
Example: Check that string T1 contains a letter and a number:
  • with the MatchRegularExpression function: the regular expression used is [A-Za-z][0-9]
  • with InputMask: the regular expression used is [A-Za-z]{0,1}[0-9]{0,1}

Limitations

Universal Windows 10 AppiPhone/iPadIOS Widget In a report, the InputMask property can only be used on:
  • a calculated control,
  • a preset control,
  • a Static control.
WINDEV Mobile In a window, the InputMask property applies only to:
  • edit controls,
  • table columns,
  • editable combo boxes,
  • groups of edit controls,
  • table cells.
Related Examples:
The regular expressions Unit examples (WINDEV): The regular expressions
[ + ] Using regular expressions with WINDEV.
Two use modes are presented for the regular expressions:
- checking the input format
- checking out different elements while respecting the input format.
This example is also used to search for a word in a string. The search can be case-sensitive or not. Possibility to take into account (or not) the start or end of string, as well as spaces (anywhere in the string, even in the sought word)
Advanced input mask Unit examples (WINDEV): Advanced input mask
[ + ] Handling the input masks in WINDEV:
- Defining the format of positive/negative number in a numeric edit control
- Defining how negative numbers will be displayed in a numeric edit control
- Defining how the value 0 will be displayed in a numeric edit control
- Using a regular expression to prevent from typing characters other than 1, 2, 3, 4, 5 and 6.
- Using a regular expression to "regulate" the input of a French registration number
The regular expressions Unit examples (WINDEV Mobile): The regular expressions
[ + ] Using regular expressions with WINDEV Mobile.
It presents 2 modes for using the regular expressions:
- check the input format
- check out the different elements that match the input format.
This example is also used to search for a word in a string. The search can be case-sensitive or not. Possibility to take into account (or not) the start or end of string, as well as spaces (anywhere in the string, even in the sought word)
Minimum version required
  • Version 9
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 07/03/2023

Send a report | Local help