КАТЕГОРИИ: Архитектура-(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;».
Дата добавления: 2014-01-05; Просмотров: 751; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |