TPXPictureValidator
TPXPictureValidator
Объект TPXPictureValidator проверяет введенную пользователем строку на соответствие некоторому шаблону ввода. Шаблон ввода определяется с помощью специальных символов, подобно тому, как задается допустимый ввод в базе данных Paradox корпорации Borland. В шаблоне можно использовать следующие специальные символы:
Символ | Назначение |
# | Любая цифра |
? | Любая буква |
@ | Любой символ (буква, цифра или специальный символ) |
& | Любая буква с автоматическим преобразованием в верхний регистр |
! | Любой символ с автоматическим преобразованием букв в верхний регистр |
* | Повторение следующего символа произвольное число раз |
; | Следующий символ - не управляющий |
[] | Заключенная в скобки последовательность символов может отсутствовать |
, | Разделение вариантов |
{} | Создание группы |
Любой другой символ шаблона представляет сам себя, т.е. не является управляющим. Символ «;», предшествующий специальному символу, отменяет его специальное назначение. Чтобы в шаблон вставить собственно символ «;», его нужно удвоить.
Перечисленные символы позволяют формировать шаблоны любой сложности. Например:
- ### - трехзначное число; примеры правильного ввода: 123, 566, 080; неправильный ввод: 12 (нет одной цифры), -12 (первый символ - не цифра);
- *# - число с произвольным количеством цифр; допустимый ввод: 1, 12, 12345678987654321; неправильный ввод:-12, 0334А;
- [+,-]*#- произвольное целое число; допустимый ввод: +123, -56, 7890; недопустимый ввод:+-123, 1.23, 12345Е+02;
- {#[#]}-{#[#]}-{##[##]}- дата в формате ДД-ММ-ГТ; допустимый ввод: 1-2-33, 01-02-1933; недопустимый ввод: 1/2/33, 1 фев 33;
- #;**#- число в диапазоне 0...9 умножается (символ *) на произвольное положительное целое число; правильный ввод: 2*2, 3*12345; неправильный ввод: 2/2, 123*12345.
TFilterValidator
Этот объект проверяет все введенные пользователем символы на их принадлежность к набору допустимых символов. Если очередной вводимый символ не принадлежит эталонному множеству, он игнорируется и при наборе просто не появляется в строке ввода. Таким образом, объект TFilterValidator действительно фильтрует вводимую строку, удаляя из нее неправильные символы. Например, экземпляр объекта
MyFilter := New(PFilterValidator,Init(['0'..'9']))
выбирает из ввода только цифры.