Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие по программированию на ДЕЛЬФИ.doc
Скачиваний:
45
Добавлен:
11.02.2015
Размер:
1.77 Mб
Скачать

2.2. TSpeedButton - кнопка для инструментальных панелей

Кнопки TSpeedButton отличаются от TBitBtn Тремя обстоятельствами: во-первых, они могут фиксироваться в утопленном состоянии, во-вторых, они не могут закрыть модальное окно в третьих, они не могут быть умалчиваемыми. Во всем остальном они повторяют свойства и методы TBitBtn.

Для фиксации кнопка должна быть отнесена к какой-либо группе кнопок (эта группа может состоять из нее одной - вариант одиночной фиксируемой кнопки). Для этого используется свойство GroupIndex, которое не должно быть равно 0. Поведение кнопки определяется логическим свойством AllowAllup: если это свойство имеет значение True, утопленная кнопка отпускается только при нажатии любой другой кнопки, входящей в ту же группу; если AllowAllup=False, кнопку можно освободить повторным щелчком. Индикатором состояния кнопки служит логическое свойство Down, которое имеет значение True, если кнопка утоплена. Свойство доступно для записи, что позволяет изменять состояние кнопки программно. Для кнопки TSpeedButton предусмотрено событие onDblclick, которое возникает при двойном щелчке на утопленной кнопке.

2.3. TMaskEdit - специальный редактор

Специализированный редактор TMaskEdit предназначен для ввода текста, соответствующего некоторому шаблону, задаваемому свойством EditMask. Если это свойство не задано, TMaskEdit работает как обычный редактор TEdit. Свойство IsMasked доступно только для чтения и содержит True, если строка шаблона задана. Свойство EditText содержит текст до наложения на него маски шаблона (т. е. то, что ввел пользователь), а свойство Text может (в зависимости от шаблона см. ниже) содержать либо исходный текст, либо результат наложения на него маски шаблона.

Шаблон состоит из трех частей, отделенных друг от друга символами “;”. Первая часть задает маску ввода, вторая - это символ “О” или “I”, определяющий, записывается ли в Text результат наложения маски или исходный текст (“О” - исходный текст). В третьей части указывается символ, который в окне редактора будет стоять в полях, предназначенных для ввода символов (текст в редакторе может содержать символы маски; например, для ввода семизначного номера телефона текст в начале ввода может выглядеть так: (495)ХХХ-ХХ-ХХ где доступные для ввода пользователя поля указаны символом “X” -последним символом в шаблоне).

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

Описатели полей ввода:

L -должно содержать букву

l -может содержать букву

A -должно содержать букву или цифру

a -может содержать букву или цифру

C -должно содержать любой символ

c -может содержать любой символ

0 -должно содержать цифру

9 -может содержать цифру

# -может содержать цифру, “+”, “-”

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

\

Следующий символ - литерал. Позволяет вставить в маску литералы из символов описателей полей ввода и специальных символов

:

На это место вставляется символ-разделитель для час, мин, сек

/

На это место вставляется символ-разделитель для полей даты

;

Разделитель частей шаблона

!

Подавляет все ведущие пробелы

>

Все следующие за ним поля ввода преобразуют буквы к заглавным

<

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

<>

Отменяет преобразование букв

Маска

Вид в редакторе

Св-во EditText

Свойство Text

(095)000-0000;0;х

(095)ххх-хххх

123456

1234567

(095)0000000;1;х

(095)ххх-хххх

7 12345

(095)1234567

(095)\0\00-0000;1; .

(095)00.-....

1234567

(095)0012345

 Если не все требуемые поля ввода заполнены и компонент лишился фокуса ввода, на экран выводится окно с сообщением и после закрытия окна курсор устанавливается к месту, где закончился правильный ввод.

Остальные свойства компонента повторяют соответствующие свойства TEdit. В частности, установка в свойство РasswordСhar любого символа, кроме #0, обеспечивает секретность ввода: в этом случае все вводимые в компоненте символы заменяются символом PasswordChar.