Исходник программы, показывающей пример проверки корректности числового ввода на целые и дробные числа.
Например, вы хотите, чтобы пользователь вводил только цифры и числа, но как убедиться, что он вводит правильное число? Пользовательский текст обычно вводится через компонент TEdit. В окне инспектора объектов (F11) есть вкладка событий, и если вы щелкнете по ней, одним из событий будет «OnKeypress». При двойном щелчке вы получите пример метода, который вызывается всякий раз, когда пользователь вводит символ в поле редактирования. Мы можем использовать это событие, чтобы проверить правильность введенного символа.
Для целых чисел допустимыми символами являются от «0» до «9», «-» и символ возврата каретки (+ может быть включен, но всегда является избыточным, поскольку отсутствие знака перед числом также означает +). Delphi определяет набор из 12 символов от '0' до '9', '-' и обратного пробела как ['0'. .'9 ',' - ', #8] (#8 - это десятичное число, сгенерированное при нажатии клавиши Backspace). Если введенный символ не один из них, мы можем установить значение ключа равным 0 (что указывает контролу игнорировать данную клавишу) и подавать звуковой сигнал, чтобы пользователь знал, что что-то пошло не так. Другой тест, который мы можем выполнить - это проверить, что существует не более одного «-» и что если ввести «-», он отобразится в начале текста.
Есть еще одна потенциальная ошибка, которую OnKeyPress не может уловить. Мы можем использовать событие OnChange, чтобы обнаружить пустую текстовую строку и заменить ее на «0».
Проверка чисел с плавающей запятой (с десятичными знаками) аналогична, за исключением того, что мы должны добавить '.' в набор допустимых символов в OnKeyPress. Для общности мы можем использовать глобальную предопределенную константу DecimalSeparator вместо '.' (Европейцы меняют точку и запятую из-за правильного использования). Нам нужно убедиться, что в числе есть не более одного DecimalSeparator. Кодировка OnChange не изменится по сравнению с целочисленной версией.