Компонент MaskEdit отличается от Edit и
LabeledEdit тем, что в нем можно задать строку маски в свойстве EditMask. Маска
состоит из трех разделов, между которыми ставится точка с запятой (;). В первом
разделе — шаблоне записываются специальным образом символы, которые можно
вводить в каждой позиции, и символы, добавляемые самой маской; во втором разделе
записывается 1 или 0 в зависимости от того, надо или нет, чтобы символы,
добавляемые маской, включались в свойство Text компонента; в третьем разделе
указывается символ используемый для обозначения позиций, в которых еще не
осуществлен ввод. Прочитать результат ввода можно или в свойстве Text, которое в
зависимости от вида второго раздела маски включает или не включает в себя
символы маски, или в свойстве EditText, содержащем введенный текст вместе с
символами маски.
Таблица. Символы шаблона маски
Знак
Описание
!
Наличие символа «!» означает, что в EditText недостающие символы
предваряются пробелами, а отсутствие символа «!» означает, что пробелы
размещаются в конце.
>
Символ «>» означает, что все последующие за ним символы должны вводиться в
верхнем регистре, пока не кончится маска или пока не встретится символ «<».
<
Символ «<» означает, что все последующие за ним символы должны вводиться в
нижнем регистре, пока не кончится маска или пока не встретится символ «>».
\
Символ «\» означает, что следующий за ним символ является буквенным, а не
специальным, характерным для маски. Например, символ «>» после символа «\»
воспримется как знак >, а не как символ, указывающий на верхний регистр.
L
Символ «L» означает, что в данной позиции должна быть буква.
I
Символ «I» означает, что в данной позиции может
быть только буква или ничего.
А
Символ «А» означает, что в данной позиции должна быть буква или цифра.
а
Символ «а» означает, что в данной позиции может быть буква, или цифра, или
ничего.
С
Символ «С» означает, что в данной позиции должен быть любой символ.
с
Символ «с» означает, что в данной позиции может быть любой символ или
ничего.
0
Символ «0» означает, что в данной позиции должна быть цифра.
#
Символ «#» означает, что в данной позиции может быть цифра, знак «+», знак
«-» или ничего.
:
Символ «:» используется для разделения часов, минут и секунд. Символ «/»
используется для разделения месяцев, дней и годов в датах. Символ «_»
означает автоматическую вставку в текст пробела.
<>
Символы «<>» означают, что анализ регистра не производится.
9
Символ «9» означает, что в данной позиции может быть цифра или ничего.
/
Символ «/» используется для разделения месяцев, дней и годов в датах.
_
Символ «_» означает автоматическую вставку в текст пробела.
Вводить маску можно непосредственно в свойство
EditMask. Но удобнее пользоваться специальным редактором масок, вызываемым при
нажатии кнопки с многоточием в строке свойства EditMask в Инспекторе Объектов.
В редакторе масок окно Sample Masks содержит
наименования стандартных масок и примеры ввода с их помощью. В окно Input Mask
надо ввести маску. Если вы выбираете одну из стандартных масок, то окно Input
Mask автоматически заполняется и вы можете, если хотите, отредактировать эту
маску.
Окно Character for Blanks определяет символ,
используемый для обозначения позиций, в которых еще не осуществлен ввод (третий
раздел маски). Индикатор Save Literal Characters определяет второй раздел маски:
установлен, если второй раздел равен 1, и не установлен, если второй раздел
равен 0.
Кнопка Masks позволяет выбрать и загрузить
какой-либо другой файл стандартных масок. К сожалению, среди файлов стандартных
масок, поставляемых с Delphi, отсутствует маска, соответствующая российским
стандартам. Но вы легко можете сами сделать себе такой файл стандартных масок.
Он делается в обычном текстовом редакторе и должен сохраняться как «только
текст» с расширением .dem.
Чтобы редактор масок Delphi видел этот файл, его надо сохранить в каталоге
Delphi BIN. Каждая строка файла состоит из трех частей, разделяемых символом
вертикальной черты. Первая часть состоит из пояснительного текста, появляющегося
в левой панели окна Sample Masks редактора масок. Вторая часть — пример, который
появляется в правой панели окна Sample Masks редактора масок. А третья часть —
сама маска. Например, я сделал себе файл с текстом, приведенным ниже, и сохранил
его с именем ru.dem.
Телефон | 5551212 | !000-00-00;0;_
Телефон с кодом страны I 0955551212 I
!\(999\) 000-00-00;0;_
Почтовый индекс | 123456 | !0000000;1;_
Паспорт | VII123456 I IL-LL 999999;0;_
Дата с указанием дня | 270694 |
!99/99/00;1;_
Дата без указания дня | 0694 |
!99/00;1;_
Время с секундами | 210515 |
!90:00:00;1;_
Время без секунд | 1345 | !90:00;1;_
Рассмотрим примеры масок. В приведенном выше
файле маска для ввода номера телефона имеет вид:
!\(999\) 000-00-00;0;_
В этой маске символ «9» означает, что в
соответствующей позиции может быть только цифра. Символ «0» означает, что в
данной позиции должна быть цифра. Символ подчеркивания в конце маски будет
заполнять пустые позиции. Таким образом, пользователю для ввода в окне будет
отображен шаблон:
(____)____-____-____
Поскольку второй раздел маски равен 0, то при
чтении введенных пользователем значений свойства EditText и Text будут
различаться. Свойство EditText для примерабудет равно «(095) 123-45-67», а
свойство Text будет равно «0951234567». Если второй раздел маски сделать равным
1, то значения обоих свойств будут равны «(095) 123-45-67».
Рассмотрим еще пример. Если с помощью EditMask
надо ввести, например целое число без знака, состоящее не более чем из двух
цифр, можно задать маску «99;0; ». Если число обязательно должно быть
двузначным, то маска должна иметь вид «00;0; ».
Рассылка временно не будет выходить из-за отсутствия времени. Поддержите
рассылку, купив части архива на сайте.
Размещение рекламы на сайте или в рассылке в виде текста, более 3500 подписчиков. antonxp2004@hotmail.com
www.hostingsystem.ru
-
качественный хостинг без простоев, хостинг для компаний,
круглосуточная поддержка по телефону, e-mail, а также из
личной панели управления пользователя, неограниченный трафик.
Сайт
рассылки
http://mydelphi7.narod.ru,
на котором есть архив рассылки, также гостевая книга, переводчик.
Копировать, размещать, продавать представленную информацию
запрещается.