![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Строка ввода с маской – TMaskEdit
Строка ввода с маской служит специальным редактором, осуществляющим контроль вводимого текста в соответствии с заданным шаблоном. Шаблон может представлять собой номер телефона, дату, время, счет в банке. Шаблон ввода задается в редакторе маски:
property EditMask: TEditMask;
Структурно маска состоит из трех полей, разделенных точкой с запятой (рис. 8.2). Обязательным для заполнения является только первое поле, в ко- тором записывается непосредственно маска ввода. Допустимые символы маски приведены в табл. 8.1. Особый интерес представляет символ наклон- ной черты «\», назначение которого – оповестить Delphi о том, что следую- щий за ним символ является литералом (символом оформления, отображае- мым в строке ввода). В примере наклонная черта предшествует круглым скобкам, в которые заключается телефонный код города, т. е. круглые скоб- ки являются литералами. Второе (необязательное) поле маски способно принимать два значения: 0 или 1. В первом случае в свойство строки ввода Text символы-литералы не включаются, во втором в обработанный текст войдут все символы. Независимо от состояния второго поля шаблона в следующем свойстве компонента окажется полный вариант текста: property EditText: string;
И наконец, третье поле маски включает единственный символ, называемый символом подстановки. До тех пор пока пользователь не введет весь текст, этот символ будет отображаться во всех пустых полях строки ввода. Таблица 8.1. Символы маски
Соответствие введенного текста маске ввода проверяет метод: procedure ValidateEdit; virtual;
При ошибке ввода методом ValidateError() генерируется исключительная ситуация EDBEditError. Как правило, нет необходимости использовать эту процедуру в исходном коде, т. к. она автоматически вызывается Delphi, когда строка теряет фокус. Количество символов в свойстве Text возвратит функция:
function GetTextLen: Integer;
|