
- •Тема 3 Компоненты ввода и отображения текстовой информации
- •1 Label - метка
- •2 Edit-однострочное окно редактирования
- •3 MaskEdit – форматированный ввод
- •4 Memo – многострочное окно редактирования
- •Тема 4 Кнопки и индикаторы
- •1 Button – кнопка
- •2 BitBtn – кнопка с пиктограммой
- •3 SpeedButton – кнопка с пиктограммой и фиксацией
- •4 CheckBox – индикатор
- •Тема 5 Радиокнопки и компоненты группирования данных
- •1 RadioButton – радиокнопка
- •2 Panel – панель
3 MaskEdit – форматированный ввод
Поле TMaskEdit предназначено для ввода текста, соответствую ще го некото-рому шаблону, задаваемому свойством EditMask: string. Если зто свойство не задано, компонент TMaskEdit работает как обычное текстовое поле TEdit. Свойство IsMasked: Boolean доступно только для чтения и содержит значение True, если строка шаблона задана. Свойство EditText: string содержит тёкет до наложения на него маски ввода (т. е. то, что ввел пользователь), а свойство Text: string может (в зависимости от шаблона) содержать либо исходный тёкет, либо результат наложения на него маски.
Шаблон состоит из трех частей, отделенных друг от друга символами точки с запятой (;). Первая часть задаёт маеку ввода, вторая — это символ 0 или 1, определяющий, нужно ли записывать в свойство Text результат наложения маски (1) или требуется оставить исходный тёкет (0). В третьей части указывается символ, который в поле с маской ввода будет присутствовать в мес-тах, предназначенных для ввода символов (тёкет в поле может содержать символы маски). Например, для ввода семизначного номера телефона тёкет перед началом ввода может выглядеть так:
(095) XXX-XX-XX
Здесь доступные для ввода пользователя места обозначены символом х — последним символом в шаблоне.
Маека состоит из описателей мест ввода, специальных символов и литералов. Описатель указывает, какой именно символ может ввести пользователь в данное место (описатель всегда указывает место для одного символа). Литерал вставляется в тёкет, показываемый в окне редактора, но при вводе курсор перескакивает через литерал и не даёт пользователю возможности изменить его. Литералами считаются любые символы, кроме описателей полей и специальных символов, а также любой символ, которому предшествует символ \. Специальные символы формируют дополнительные указания редактору.
4 Memo – многострочное окно редактирования
Компоненты класса TMemo предназначены для ввода, редактирования и/или отображения достаточно длинного текста.
Текст хранится в свойстве Lines класса Tstrings и, таким образом, представляет собой пронумерованный набор строк (нумерация начинается с нуля).
Свойства BorderStyle, CanUndo, HideSelection, MaxLentgh, Modified, OnChange, Readonly, SelLength, SelStart и SelText аналогичны соответствующим свойствам класса TEdit.
Свойство wordwrap аналогично свойству TLabel.Wordwrap. Другие специфические свойства представлены в таблице.
Свойства компонента Mето
Свойство |
Описание |
property Lines: TStrings; |
Содержит строки текста |
TScrollStyle = (ssNone, ssHorizontal, ssVertical, ssBoth) ;
property ScrollBars: т TScrollStyle; |
Определяет наличие в многострочном поле полос прокрутки1 ssNone – нет полос, ssHorizontal – есть горизонтальная полоса; ssVertical– есть вертикальная полоса; ssBoth – есть обе полосы |
property Text: String; |
Отображает содержимое свойства Lines в виде одной длинной стоки, в которой границы отдельных строк определяются символами EOL (CR+LF) |
property WantReturns: Boolean; |
Если содержит значение True, нажатие клавиши <Enter> вызывает переход на новую строку, в противном случае – обрабатывается системой. Для перехода на новую строку в этом случае следует нажать клавиши <Ctrl>+<Enter> |
property WantTabs: Boolean; |
Если содержит значение True, нажатие клавиши <ТаЬ> вызывает ввод в текст символа табуляции, в противном случае – обрабатывается системой. Для ввода символа табуляции в этом случае следует нажать клавиши <Ctrl>+<Tab> |
Поскольку компонент является потомком класса TControl, он имеет также свойство Text, которое содержит отображаемый компонентом текст в виде одной длинной строки. В этой цепочке символов границы строк многострочного текста выделяются символами с кодом #13#10 (признак eoln – конец строки) В отличие от этого, свойство Lines содержит пронумерованный список строк первая строка в этом списке имеет индекс 0, вторая – 1, а общее количество строк можно узнать с помощью метода Lines.Count.
Для загрузки в компонент текста из файла и для сохранения текста в файле удобно использовать методы LoadFromFile и SaveToFile класса Tstrings.
Литература: 1, с.41-52.
Контрольные вопросы:
1. Для чего предназначен компонент Edit, основные свойства компонента?
2. Для чего предназначен компонент Memo, основные свойства компонента?
3. Для чего предназначено свойство Lines компонента Memo?
4. Как переносить слова в строке с использованием компонента Label?
5. Из скольких частей состоит шаблон маски?