Delphi 3 и создание приложений баз данных

       

Форматирование полей во время их редактирования


Свойство property EditMask: string;

служит для контроля правильности вводимых в поле значений. Ограничения накладываются при помощи формата. Если некоторый введенный символ не удовлетворяет маске, он не воспринимается.

Для строковых полей значение данного свойства может использоваться для форматирования не только входных, но и выходных значений вместе со свойством Display Text.

Маска представляет собой символьную строку. Она состоит из 3-х частей:

1. Собственно маска;

2. Символ, определяющий, будут ли литералы (символ после указателя '\') включаться в форматируемое значение как его часть (значение 1) или не будут(значение 0);

3. Символ, используемый в маске для представления пробела.

Символы, которые могут входить в маску:



! Подавляет ведущие пробелы. В отсутствие этого символа в данных подавляются хвостовые пробелы
> Все следующие символы будут на верхнем регистре, пока не встретится символ <
< Все следующие символы будут на нижнем регистре, пока не встретится символ >
<> Регистр не проверяется. Все остается на том регистре, как ввел пользователь
\ Следующий за ним символ является литералом, т.е. включается в форматируемое значение
L В данной позиции должен появиться только символ алфавита
| Аналогично L, но символ в данной позиции может и отсутствовать
А В данной позиции должен появиться только символ алфавита или цифра
а Аналогично А, но символ в данной позиции может и отсутствовать
С В позиции обязателен любой символ
с Аналогично С, но символ в данной позиции может отсутствовать
0 В данной позиции обязателен цифровой символ
9 В данной позиции должен появляться только цифровой символ или не появляться никакой
# В данной позиции должен появляться только цифровой символ плюс или минус или не появляться никакой
: Разделитель часов, минут и секунд для значения типа времени Если в данной национальной кодировке для указанных целей используется иной символ, он используется вместо символа ':'
/ Разделитель месяца, дня и года в датах. Если в данной национальной кодировке для указанных целей используется иной символ, он используется вместо символа ':'
; Разделитель частей маски
_ Заменитель пробела в маске

В модуле Mask имеются следующие константы, которые определяют некоторые компоненты маски по умолчанию

Имя константы Нач.значение Смысл
DetaultBlank _ Обозначение пробела в маске
MaskFieldSeparator , Разделитель частей маски
MaskNoSave 0 Если 0, символы маски не будут включаться в значение; если 1,-будут.

Пример.

Маска '!\(999\)000\-00\-00;1;_'. Введено '0952223344'. В период ввода представлялось на экране как '(095)222-33-44', запомнилось как '(095)222-33-44'. Если бы была использована маска '!\(999\)000\-00\-00;0;_', в период ввода представлялось на экране как '(095)222-33-44', запомнилось как '0952223344'.

Значение свойства Edit Mask игнорируется, если определен обработчик для события OnGelText.

Свойство го property EditMaskPtr: string;

возвращает значение маски редактирования. Поскольку свойство доступно только на чтение, его следует использовать вместо EditMask в тех случаях, когда маска должна быть только прочитана. В итоге мы защищаемся от случайных изменений маски.

Свойство property EditFormat: string;

применяется для форматирования значений полей типа TIntegerField, TSmallintField, TWordField перед их редактированием. Форматирование выполняется функцией Float To TextFmt.

Пример.

Пусть значение поля 3456.777. Тогда если EditFormat := '#.#', то при редактировании значение поля первоначально будет показано как 3456.8.

Свойство property Text: string;

содержит строковое изображение значения поля в том виде, в котором оно показывается в визуальном компоненте, когда НД находится в режиме редактирования (dsEdit) . Свойство Display Text содержит строковое изображение значения поля, когда НД находится не в режиме редактирования.



Содержание раздела