Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_Delphi_1курс лекции / Тема 04 Компоненты ввода и отображения.doc
Скачиваний:
56
Добавлен:
23.03.2015
Размер:
194.56 Кб
Скачать

Компонент MaskEdit (окно маскированного редактирования)

Страница Additional

Используется для форматирования данных или для ввода символов в соответствии с шаблоном.

Компонент аналогичен по своим свойствам компоненту TEdit, позволяя редактировать в окне однострочные тексты без возможности их выравнивания и переноса на следующую строку. Компонент отличается отTEditвозможностью задавать строку маски (свойствоEditMask), в каждой позиции которой записываются условные символы, буквы или цифры, кодирующие возможности записи в этих позициях определённых знаков, например, только цифр или только букв.

Маскированный ввод позволяет контролировать синтаксическую правильность ввода и сократить возможность ошибок.

Маска состоит из трех разделов, между которыми ставится точка с запятой (;). В первом разделе - шаблоне записываются специальным образом символы (см. приведенную ниже таблицу), которые можно вводить в каждой позиции, и символы, добавляемые самой маской; во втором разделе записывается 1 или 0 в зависимости от того, надо или нет, чтобы символы, добавляемые маской, включались в свойство Text компонента MaskEdit; в третьем разделе указывается символ, используемый для обозначения позиций, в которых еще не осуществлен ввод.

Специальные символы маски:

! Наличие символа "!" означает, что недостающие символы предваряются пробелами, а отсутствие символа "!" означает, что пробелы размещаются в конце.

> Символ ">" означает, что все последующие за ним символы должны вводиться в верхнем регистре, пока не кончится маска или пока не встретится символ "<".

< Символ "<" означает, что все последующие за ним символы должны вводиться в нижнем регистре, пока не кончится маска или пока не встретится символ ">".

<> Символы "<>" означают, что анализ регистра не производится.

\ Символ "\" означает, что следующий за ним символ является буквенным, а не специальным, характерным для маски. Например, символ ">" после символа "\" воспримется как знак >, а не как символ, указывающий на верхний регистр.

L Символ "L" означает, что в данной позиции должна быть буква.

l Символ "l" означает, что в данной позиции может быть только буква или ничего.

A Символ "A" означает, что в данной позиции должна быть буква или цифра.

a Символ "a" означает, что в данной позиции может быть буква, или цифра, или ничего.

C Символ "C" означает, что в данной позиции должен быть любой символ.

c Символ "c" означает, что в данной позиции может быть любой символ или ничего.

0 Символ "0" означает, что в данной позиции должна быть цифра.

9 Символ "9" означает, что в данной позиции может быть цифра или ничего.

# Символ "#" означает, что в данной позиции может быть цифра, знак "+", знак "-" или ничего.

: Символ ":" используется для разделения часов, минут и секунд.

/ Символ "/" используется для разделения месяцев, дней и годов в датах.

_ Символ "_" означает автоматическую вставку в текст пробела.

Примеры масок

Семизначный номер телефона: !000-00-00;0;_

Номер телефона с кодом страны: !\(999\) 000-00-00;0;_

Почтовый индекс: !0000000;1;_

Паспорт: !L-LL 999999;0;_

Дата с указанием дня: !99/99/00;1;_

Дата без указания дня: !99/00;1;_

Время с секундами: !90:00:00;1;_

Время без секунд: !90:00;1;_

Если с помощью EditMask надо ввести, например, целое число без знака, состоящее не более чем из двух цифр, можно задать маску “99;0; “ Если число обязательно должно быть двузначным, то маска должна иметь вид “00;0; “;

События

OnChangeНаступает, когда текст в окне, возможно, изменился

Методы

Основные методы такие же, как и у Tedit

procedure ValidateEdit; – Проверяет соответствие маске текста в окне. Если нет соответствия, генерируется исключение и курсор устанавливается на первую позицию, не соответствующую маске.