Компонент Delphi MaskEdit (Шаблон ввода)

Компонент Delphi MaskEdit (Шаблон ввода) расположен на странице Additional Палитры компонентов. Он также, как и компонент Edit, является однострочным редактором. Но вдобавок к свойствам и функциям компонента Edit, MaskEdit дает дополнительную возможность ввода текста по заданному шаблону.

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

Шаблон (маска) задается с помощью свойства EditMask и состоит из трех полей разделенных между собой символами точка с запятой. В первом поле находиться сам шаблон (маска). Второе поле определяет, войдут ли вспомогательные символы в итоговый текст (по умолчанию 1). Если стоит 0, то они не будут в итоговом результате, а видны на дисплее при редактировании.  Любой иной символ разрешает такое включение. Третье поле отвечает за вывод незаполненных (пустых) символов в поле ввода (по умолчанию это символ подчеркивания). При не заданных значениях второго и третьего полей, действуют значения по умолчанию.

В шаблоне (маске)  используются  следующие специальные символы:

  • !   — Наличие этого символа в маске означает, что необязательные символы вставляются перед шаблоном, если отсутствует то после шаблона;
  • > —  символы, следующие за этим символом переводятся в верхний регистр;
  • < — символы, следующие за этим символом, переводятся в нижний регистр;
  • <> — прекращение преобразования символов;
  • \ — символ следующий далее вставляется в шаблон (маску). Это необходимо для того чтоб произвольные символы могли быть частью шаблона;
  • L — в данной позиции должна стоять буква;
  • I — в данной позиции разрешен ввод буквы, но возможно ничего не вводить;
  • A —  в данной позиции возможен ввод цифры или буквы;
  • a — возможно в данной позиции вставить цифру, букву или оставить пустой;
  • C — в данной позиции возможен ввод любого символа;
  • 0 — в данную позицию необходимо ввести цифру;
  • 9 — в данной позиции может находиться цифра или она будет пустой;
  • # —  в данной позиции может быть цифра, +, -. Позиция может быть оставлена пустой;
  • : — используется для разделения часов, минут и секунд в  показаниях времени;
  • _ — в данном месте автоматически будет вставлен пробел.

Символы не описанные выше вставляются в результирующий текст без изменений.

вызов input mask editorДля вызова редактора маски делаем двойной щелчок в области многоточия. Вид данного редактора показан ниже.Вид редактора Input Mask

Маску можно  выбрать из образцов в поле Sample Masks или ввести вручную в поле Input Mask. Легче выбрать из образцов наиболее близкую маску и отредактировать ее.  Поле Character for Blanks задает вид незаполненной позиции во входной строке. Значок Save Literal Characters отвечает за включение в маску литеральных символов. В поле Test Input проверяется функциональность маски и мы можем увидеть какой будет вид пустого поля в приложении.

Итог: мы рассмотрели компонент  MaskEdit  и его предназначении в приложении.

P.S. Пример - расположим на форме простую кнопку. Добавим по 2 компонента MaskEdit и Edit. Свойство   EditMask у компонентов будут такими: первый вариант маскии Свойство MaskEdit

отличаются они вторым полем в одном 0 в другом 1.

Создадим обработчик для кнопки:

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := MaskEdit1.Text;
Edit2.Text := MaskEdit2.Text;
end;

Теперь запустим наше приложение. Введем в поля основанные на компоненте MaskEdit даты, я ввел две одинаковые и нажав на кнопку получил результат показанный ниже.

полученный результат

Как видно из данного примера два нижних значения отличаются наличием точек.

Понравилась статья? Раскажите друзьям:
Общайтесь со мной

3 thoughts on “Компонент Delphi MaskEdit (Шаблон ввода)

  1. написано “Если стоит 0, то они не будут в итоговом результате, а видны на дисплее при редактировании.”
    вопрос : 1 В каком “итоговом результате” , о чем речь ,после заполнения поля
    или после …чего еще..
    2 Видны на дисплее при редактировании – это когда уже программа запущена
    ясности нет о чем речь , и примеры желательно

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>