|
||||||||
|
Ввод и ред. TMaskEdit
Этот специальный редактор допускает лишь ввод текста, соответствующего заданному программистом шаблону, например, паролей, регистрационных номеров, дат и других данных, которые имеют определенный формат представления. Шаблон ввода в виде строки содержится в свойстве:
Если он не определен, TMaskEdit работает как обычный редактор. Свойство
показывает, определен ли шаблон редактирования (значение EditMask не равно пустой строке). "Черновой" текст, содержащий введенные пользователем символы, соответствует свойству:
В то же время отформатированный (наложенный на шаблон) текст содержится в свойстве Text. Опишем правила, применяемые при составлении шаблона. Шаблон состоит из трех частей, разделяемых символом ';' или другим, заменяющим его. Первая часть является обязательной ? она определяет собственно маску ввода. Каждому символу в поле ввода редактора соответствует специальный символ в маске, определяющий, что можно ввести на этом месте. Описатели маски ввода представлены в таблице:
"Должен" означает, что пользователь обязан ввести в поле соответствующий символ, "может" ? что не обязан. Например, шаблон "LL00" обязывает пользователя ввести пароль из двух букв и двух цифр, a "LL99" ? из двух букв и не более двух цифр. Кроме описателей полей ввода, в шаблоне могут быть литералы и другие форматирующие символы. Литералами будем называть символы, которые появляются при отображении строки ввода, но не могут изменяться пользователем и предназначены только для ее оформления. Перед литералом должен стоять символ '\'. Типичный пример ? ввод телефонных номеров. Для семизначного номера с возможностью ввода междугороднего кода нужен шаблон "!\(999\)000-0000;1;_". Тогда код города (если он есть) в отформатированном тексте будет заключен в скобки. Специальные символы приведены в следующей таблице:
Вторая часть шаблона ? это символ '0' или '!', определяющий, записываются ли литералы в обработанный текст (свойство Text). При 0 символы опускаются. Использование такого компонента при работе с базами данных дает возможность экономии места. Например, пользователь ввел цифры 1234567. Тогда при действующем шаблоне "999\-99\-00;1;_" свойство Text будет равно "123-45-67", а для шаблона "999\-99\-00;0;_" - "1234567". Третья часть содержит символ, который будет показываться в полях, предназначенных для ввода. Например, шаблон для ввода номеров машин "L 00\-00 LL;1;X" будет выглядеть как "X═ХХ-ХХ XX". По умолчанию этот символ определяется значением константы DefaultBlank(cм. ниже). Вторая и третья части шаблона могут отсутствовать. Синтаксис шаблона может быть изменен за счет переопределения программистом специальных символов '_', ';' и '0'. Для этого нужно изменить определенные в модуле Mask константы:
Для ввода шаблонов в Delphi есть довольно удобный специальный редактор, содержащий некоторые полезные образцы. К сожалению, в этой версии в нем есть ошибка ? при вводе маски он не всегда сразу воспринимает введенные изменения. В этом случае еще раз компилируйте создаваемое приложение. Непосредственную проверку введенного текста осуществляет метод:
Он обычно вызывается при нажатии кнопки Default в модальной форме и при каждой утере фокуса редактором. При отсутствии введенных символов в тех местах, где они необходимы, возникает исключительная ситуация EDBEditEiror. Метод
возвращает длину текста Text.
Для комментария : kadan@grsu.grodno.by | |||||||||||||||||||||||||||||||||||||||||||||||||||
За содержание страницы отвечает Гончарова М.Н. © Кафедра СПиКБ, 2002-2017 |