Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование на Delphi. От новичка до профессионала! Продолжение... 


Информационный Канал Subscribe.Ru


Продолжение... 

 

Компонент 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, на котором есть архив рассылки, также гостевая книга, переводчик.

Копировать, размещать, продавать представленную информацию запрещается.

 

Rambler's Top100



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное