Студопедия

КАТЕГОРИИ:


Архитектура-(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, LabeledEdit и MaskEdit




 

На рис. 9 вы можете увидеть примеры окон редактирования. Внешнее офор­мление окон редактирования определяется свойством BorderStyle.

 

Рис. 9. Примеры окон редактирования

 

Во всех рассматриваемых окнах вводимый и выводимый текст содержится в свойстве Text. Это свойство можно устанавливать в процессе проектирования или задавать программно. Выравнивание текста, как это имело место в метках и пане­лях, невозможно. Перенос строк тоже невозможен. Текст, не помещающийся по длине в окно, просто сдвигается, и пользователь может перемещаться по нему с по­мощью курсора. Свойство AutoSize в окнах редактирования имеет смысл, отлич­ный от смысла аналогичного свойства меток: автоматически подстраивается под размер текста только высота, но не ширина окна.

Окна редактирования снабжены многими функциями, свойственными боль­шинству редакторов. Например, в них предусмотрены типичные комбинации «го­рячих» клавиш: Ctrl-C — копирование выделенного текста в буфер обмена Clipboard (команда Copy), Ctrl-X — вырезание выделенного текста в буфер Clipboard (команда Cut), Ctrl-V — вставка текста из буфера Clipboard в позицию курсора (команда Paste), Ctrl-Z — отмена последней команды редактирования. Правда, пользователи часто не догадываются об этих возможностях редактирования. Так что полезно напоми­нать им об этом соответствующими подсказками.

Свойство AutoSelect определяет, будет ли автоматически выделяться весь текст при передаче фокуса в окно редактирования. Имеются также свойства то­лько времени выполнения SelLength, SelStart, SelText, определяющие соответст­венно длину выделенного текста, позицию перед первым символом выделенного тек­ста и сам выделенный текст.

Окна редактирования можно использовать и просто как компоненты отобра­жения текста. Для этого надо установить в false их свойство ReadOnly и целесооб­разно установить AutoSelect в false. В этом случае пользователь не сможет изме­нять отображаемый текст и окно редактирования становится подобным меткам. Но имеются и определенные отличия. Во-первых, окна редактирования оформлены несколько иначе.

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

Если вводимый текст не соответствует числу (например, содержит недопустимые симво­лы), то функции преобразования генерируют исключение EConvertError. Поэтому в программе необходимо предусмотреть обработку этого исключения. Например:

var A: integer;

try

А:= StrToInt(Editl.Text);

... // операторы, использующие переменную А except on EConvertError do '

ShowMessage('ВЫ ввели ошибочное число; повторите ввод');

end;

Лучше, если поль­зователь просто не сможет ввести неправильные символы. Свойство MaxLength определяет максимальную длину вводимого текста. Если MaxLength = 0, то длина текста не ограничена. В противном случае значение Max-Length указывает максимальное число символов, которое может ввести пользова­тель.

Свойство Modified, доступное только во время выполнения, показывает, про­водилось ли редактирование текста в окне. Если вы хотите использовать это свойство, то в момент начала работы пользователя с текстом Modified надо установить в false. Тогда при последующем обращении к этому свойству можно по его значе­нию (true или false) установить, было или не было произведено редактирование. Свойство PasswordChar позволяет превращать окно редактирования в окно ввода пароля. По умолчанию значение PasswordChar равно #0 — нулевому симво­лу. В этом случае это обычное окно редактирования. Но если в свойстве указать иной символ (например символ звездочки «*»), то при вводе пользователем текста в окне будут появляться именно эти символы, а не те, которые вводит пользова­тель (см. рис. 3.2). Тем самым обеспечивается секретность ввода пароля.

Все сказанное выше относилось ко всем рассматриваемым окнам редактирова­ния. В компоненте Edit все ограничивается приведенными специфическими свой­ствами. А в компоненте LabeledEdit, помимо самого окна редактирования, неотли­чимого по виду от Edit, имеется метка. Она задается свойством EditLabel — объек­том класса TBoundLabel. Этот класс имеет все основные свойства, присущие метке Label: Caption, Color, Font, Layout, ShowAccelChar, Wordwrap, Canvas.

Компонент MaskEdit отличается от Edit и LabeledEdit тем, что в нем можно задать строку маски в свойстве EditMask. Маска состоит из трех разделов, между которыми ставится точка с запятой (;).

Вводить маску можно непосредственно в свойство EditMask. Но удобнее поль­зоваться специальным редактором масок, вызываемым при нажатии кнопки с многоточием в строке свойства EditMask в Инспекторе Объектов.

В редакторе масок окно Sample Masks содержит наименования стандартных ма­сок и примеры ввода с их помощью. В окно Input Mask надо ввести маску. Если вы выбираете одну из стандартных масок, то окно Input, Mask автоматически заполня­ется, и вы можете, если хотите, отредактировать эту маску.

К сожалению, среди файлов стандартных масок, поставляемых с Del­phi, отсутствует маска, соответствующая российским стандартам.




Поделиться с друзьями:


Дата добавления: 2015-03-29; Просмотров: 895; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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