Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Окна редактирования Edit и MaskEdit (Standard)

 

В компонентах Edit и MaskEdit вводимый и выводимый текст

содержится в свойстве Text типа AnsiString. Это свойство можно

устанавливать в процессе проектирования или задавать программно.

Выравнивание текста, как это имело место в метках и панелях, невозможно.

Перенос строк тоже невозможен. Текст, не помещающийся по длине в окно,

просто сдвигается и пользователь может перемещаться по нему с помощью

курсора.

Свойство AutoSize в окнах редактирования имеет смысл, отличный от

смысла аналогичного свойства меток: автоматически подстраивается под

размер текста только высота, но не ширина окна.

Окна редактирования снабжены многими функциями, свойственными

большинству редакторов. Например, в них предусмотрены типичные

комбинации «горячих» клавиш: Ctrl.-C — копирование выделенного текста в

буфер обмена Clipboard (команда Copy), Ctrl-X — вырезание выделенного

текста в буфер Clipboard (команда Cut), Ctrl-V — вставка текста из буфера

Clipboard в позицию курсора (команда Paste), Ctrl-Z — отмена последней

команды редактирования.

Свойство AutoSelect определяет, будет ли автоматически выделяться

весь текст при передаче фокуса в окно редактирования. Его имеет смысл

задавать равным true в случаях, когда при переключении в данное окно

пользователь будет вероятнее всего будет заменять текущий текст, а не

исправлять его. Имеются также свойства только времени выполнения

SelLength, SelStart, SelText, определяющие соответственно длину

выделенного текста, позицию перед первым символом выделенного текста и

сам выделенный текст. Например, если в окне имеется текст «выделение

текста» и в нем пользователь выделил слово «текста», то SelLength 6, SelStart

= 10 и SelText = «текста».Если выделенного текста нет, то свойство

SelStart просто определяет текущее положение курсора.

Окна редактирования можно использовать и просто как компоненты

отображения текста. Для этого надо установить в true их свойство

ReadOnly и целесообразно установить AutoSelect в false. В этом случае

пользователь не сможет изменять отображаемый текст и окно

редактирования становится подобным меткам, рассмотренным ранее. Но

имеются и определенные отл ичия — окна редактирования могут вмещать

текст, превышающий их длину. В этом случае пользователь может


 

прокручивать текст, перемещая курсор в окне. Такими особенностями не

обладает ни одна метка.

Свойство Text окон редактирования имеет тип строки AnsiString. При

присваивании этому типу числовой информации происходит ее

автоматическое преобразование в строку. Поэтому вы можете непо-

средственно осуществлять подобные присваивания. Например, оператор

Editll->Text = 5.2;

будет воспринят компилятором нормально и приведет к появлению

в окне текста «2,5».

Но при вводе из окна числовой информации надо использовать

функции StrToFloat — преобразование строки в значение с плавающей

запятой, и StrToInt — преобразование строки в целое значение.

Свойство MaxLength определяет максимальную длину вводимого

текста. Если MaxLength = 0, то длина текста не ограничена. В противном

случае значение MaxLength указывает максимальное число символов,

которое может ввести пользователь.

Свойство Modified, доступное только во время выполнения,

показывает, проводилось ли редактирование текста в окне. Если вы хотите

использовать это свойство, то в момент начала работы пользователя с

текстом Modified надо установить в false. Тогда при последующем

обращении к этому свойству можно по его значению (true или false)

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

Например,

While (!Edit->Modified)

{Application->MessageBox(“The current fild must be not free!”);

}

Свойство PasswordChar позволяет превращать окно редактирования в

окно ввода пароля. По умолчанию значение PasswordChar равно "#0" —

нулевому символу. В этом случае это обычное окно редактирования. Но если в

свойстве указать иной символ (например, символ звездочки "*"), то при вводе

пользователем текста в окне будут появляться именно эти символы, а не те,

которые вводит пользователь. Тем самым обеспечивается секретность ввода

пароля.

If (EditParol->Text! =”Pasword”) return;

 

Компонент MaskEdit отличается от Edit тем, что в нем можно задать

строку маски в свойстве EditMask. Это позволяет обеспечить синтаксически

безошибочный ввод пользователем таких данных, как номера телефонов,

паспортные данные, адреса, даты, время и т.п.

Маска состоит из трех разделов, между которыми ставится «;».

В первом разделе — шаблоне записываются специальным образом

символы, которые можно вводить в каждой позиции, и символы,

добавляемые самой маской; во втором разделе записывается 1 или 0 в

зависимости от того, надо или нет, чтобы символы, добавляемые маской,

включались в свойство Text компонента; в третьем разделе указывается


 

символ, используемый для обозначения позиций, в которых еще не

осуществлен ввод. Прочитать результат ввода можно или в свойстве Text,

которое в зависимее от вида второго раздела маски включает или не

включает в себя символы маски, или в свойстве EditText, содержащем

введенный текст вместе с символами маски.

Таблица. Символов шаблона маски:

 

! - Наличие символа «!» означает, что в EditText недостающие символы

предваряются пробелами, а отсутствие символа «!» означает, что пробелы

размещаются в конце

\ - Символ «\» означает, что следующий за ним символ является

буквенным, а не специальным, характерным для маски. Например, символ

«>» после символа «\» воспримется как знак > (больше), а не как символ,

указывающий на верхний регистр


L

I


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

Символ «I» означает, что в данной позиции может быть буква или


ничего

А Символ «А» означает, что в данной позиции должна быть буква

или цифра

С Символ «С» означает, что в данной позиции должен быть любой

символ



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


ничего

0 Символ «0» означает, что в данной позиции может быть только

цифра


 

 

датах


#

 

:

/

 

_


Символ «#» означает, что в данной позиции может быть цифра,

знак «+», знак «-» или ничего

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

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

 

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


> - Символ «>» означает, что все последующие за ним символы

должны вводиться в верхнем регистре, пока не встретится символ «<»

< - Символ «<» означает, что все последующие за ним символы

должны вводиться в нижнем регистре, пока не встретится символ «>»

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

 

Вводить маску можно непосредственно в свойство Edit Mask.или в

специальном редакторе масок, вызываемом при нажатии кнопки с

многоточием в строке свойства EditMask в Инспекторе Объектов.

В редакторе масок окно Sample Masks содержит наименования

стандартных масок и примеры ввода с их помощью. В окно Input Mask надо

ввести маску. При выборе одной из стандартных масок, окно Input Mask

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


 

Окно Character for Blanks определяет символ, используемый для

обозначения позиций, в которых еще не осуществлен ввод (третий раздел

маски). Индикатор Save Literal Characters определяет второй раздел маски:

установлен, если второй раздел равен 1, и не установлен, если второй раздел

равен 0.

Рассмотрим примеры масок. Маска для ввода номера телефона имеет вид:

!\(9999\) 00-00-00;0;_

В этой маске символ «9» означает, что в соответствующей позиции

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

быть цифра. Символ подчеркивания в конце маски будет заполнять пустые

позиции. Таким образом, пользователю для ввода в окне будет отображен

шаблон (см. рис. 3.2):

(___)_-_-_

Поскольку второй раздел маски равен 0, то при чтении введенных

пользователем значений свойства EditText и Text будут различаться. Свойство

EditText для примера будет равно «(095) 123-45-67», а свойство Text будет

равно «0951234567». Если второй раздел маски сделать равным 1, то значения

обоих свойств будут равны «(095) 123-45-67».

Рассмотрим еще пример. Если с помощью Edit Mask надо ввести,

например, целое число без знака, состоящее не более, чем из двух цифр, можно

задать маску «99;0;». Если число обязательно должно быть двузначным, то маска

должна иметь вид «00;0;».

 

<== предыдущая лекция | следующая лекция ==>
Отображение текста в надписях компонентов Label, | Многострочные окна редактирования Memo и RichEdit (Standard)
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 751; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.07 сек.