Компоненты ввода и отображения текстовой информации
Перечень компонентов ввода и отображения текстовой информации:
Компонент | Страница | Описание |
---|---|---|
Label | Standard | Отображение текста, который не изменяется пользователем во время работы) |
StaticText (метка с бордюром) | Additional | В дополнение к Label обеспечивает возможность задания стиля бордюра. |
Panel | Standard | Является контейнером для группирования элементов управления, но может использоваться и для отображения текстовой информации. |
Edit | Standard | Отображение, ввод и редактирование однострочных текстов |
MaskEdit (окно маскированного редактирования) | Additional | Используется для форматирования данных или для ввода символов в соответствии с шаблоном |
Memo | Standard | Отображение ввод и редактирование многострочных текстов |
RichEdit (многострочное окно редактирования в формате rtf) | Win32 | Окно редактирования в обогащенном формате rtf, позволяющее производитьвыбор шрифтов, поиск текста и др. |
ListBox (окно списка) | Standard | Отображение стандартного окна списка Windows, позволяющее пользователю выбирать из него пункты (Items) |
CheckListBox (список с индикаторами) | Additional | Комбинация свойств списка ListBox и CheckBox |
ComboBox (редактируемый список) | Standard | Объединяет функции ListBox и Edit. Пользователь может либо ввести текст, либо выбрать его из списка (items) |
StringGrid (таблица) | Additional | Отображение текстовой информации в таблице из строк и столбцов с возможностью перемещаться по ячейкам и осуществлять выбор (Cells) |
Помимо перечисленных компонентов отображать текстовые надписи можно непосредственно на свойстве Canvas (холст) любого компонента, имеющего это свойство (в частности , непосредственно на форме. Например:
Canvas.TextOut(60,16,'Canvas');
Тексты, отображаемые в компонентах Label, StaticText, Panel определяются их свойством Caption. Его можно задавать в процессе проектирования или изменять программно:
Label1.Caption:='Новый текст';
Если требуется отобразить числовую информацию, можно воспользоваться функциями FloatToStr и IntToStr:
Label1.Caption:='Число сотрудников: '+ IntToStr(I);
Размещение всех рассматриваемых компонентов на форме определяется свойствами Top,Left, Height, Witch, Align - общими для всех оконных компонентов. Эти свойства определяют координаты компонента, его размеры и их изменение при изменении пользователем родительского компонента
При изменении пользователем размеров окна приложения надо перерисовывать компоненты, изображающие текст, иначе выравнивание текста может нарушаться. Чтобы этого не было, надо в обработку события формы onResize вставить операторы, перерисовывающие компоненты методом Repaint:
StaticText1.Repaint;
Размер меток Label, StaticText опередляется свойством AutoSize. Если AutoSize=true, то вертикальные и горизонтальные размеры определяются размером надписи.
У метки Label свойство WordWrap при значении AutoSize=false задает возможность многострочных надписей.
Окна редактирования Edit и MaskEdit
Вводимый и выводимый текст содержится в свойстве Text. Его можно задавать в процессе проектирования или изменять программно. Выравнивание текста и перенос строк невозможен. Свойством AutoSize автоматически подстраивается только высота текста, но не ширина. Если текст не помещается в окне, то его можно прокручивать с помощью курсора. Для них предусмотрены типичные комбинации горячих клавиш:
- Ctrl-C - копирование выделенного текста в буфер обмена ClipBoard
- Ctrl-X - вырезание выделенного текста в буфер обмена ClipBoard
- Ctrl-V - вставка из буфера обмена ClipBoard в позицию курсора
- Ctrl-Z - отмена последней команды редактирования
Можно установить свойство ReadOnly=false и это не позволит редактировать текст.
При использовании окон редактирования для ввода, вывода и редактирования чисел необходимо использовать функции взаимного преобразования строк и чисел. Если вводимый текст не соответствует числу, то функция преобразования генерирует исключение EconvertError. Поэтому в программе необходимо предусмотреть обработку этого исключения:
Var A: integer; :.. try A:=StrToInt(Edit1.Text); ::. Except On EconvertError do ShowMessage('Вы ввели ошибочное число'); End;
Свойство MaxLength определяет максимальную длину вводимого текста (при MaxLength=0 - длина не ограничена).
Свойство Modified, доступное только во время выполнеия, показывает, проводило ли редактирование текста в окне (вначале устанавливается false, а затем проверяется.
Свойство PasswordChar позволяет превращать окно редактирования в окно ввода пароля, если установить PasswordChar=*, то при вводе пользователем текста, в окне будут появляться именно эти символы, обеспечивая секретность пароля.
В компоненте MaskEdit можно задать строку маски в свойстве EditMask.
Многострочные окна редактирования Memo и RichEdit.
В них предусиотрены <горячие> клавиши:
- Ctrl-C - копирование выделенного текста в буфер обмена ClipBoard
- Ctrl-X - вырезание выделенного текста в буфер обмена ClipBoard
- Ctrl-V - вставка из буфера обмена ClipBoard в позицию курсора
- Ctrl-Z - отмена последней команды редактирования
В компоненте Memo формат(шрифт, его атрибуты, выравнивание) одинаков для всего текста и определяется свойством Font компонента, помещенного на форму.
Компонент RichEdit работает с текстом в формате rtf. Изменить арибуты вновь водимого текста можно свойством SelAttributes. Это свойство имеет тип TtextAttributes, которое в свою очередь имеет подсвойства: Color, Name(имя шрифта), Size, Style и др. Если поместить на форму со строницы Dialog палитры кмпонент стандартный диалог выбора шрифта FontDialog и кнопку, с помощью которой этот диалог будет вызываться, то можно связать возвращаемые даилогом атрибуты текста со свойствами текстового редактора:
procedure TForm1.Button1Click(Sender: TObject); begin if FontDialog1.Execute then with RichEdit1.SelAttributes do begin Color. FontDialog1.Font.Color; Name. FontDialog1.Font.Name; Size. FontDialog1.Font.Size; Style. FontDialog1.Font.Style; End; RichEdit1.SetFocus; end;
Можно присвоить сразу все свойства одного объекта другому, т.к. объекты SelAttributes и Font совместимы по типу:
procedure TForm1.Button1Click(Sender: TObject); begin if FontDialog1.Execute then RichEdit1.SelAttributes.Assign(FontDialog1.Font); RichEdit1.SetFocus; end;
Общие свойства этих окон редактирования:
- Alignмent - выравнивание текста
- WordWrap - допустимость переноса длинныз строк
- ReadOnly - true - только для чтения
- MaxLength - максимальная длина вводимого текста
- WantReturns - допустимость ввода пользователем в текст символа перевода строки
- WantTab - допустимость ввода пользователем в текст символа табуляции
- ScrollBars - наличие полос прокрутки
Основное свойство окон редактирования Memo и RichEdit - Lines, содержащее текст окна в виде списка строк и имеющее тип TStrings.
- Lines - начальное значение текста в процессе проектирования в Инспекторе объектов
- Count - количество строк в тексте
- Memo1.Lines.Strings[0] - доступ к отдельной (первой) строке текста по индексу. Индексы меняются как везде в Delphi от 0 до Count-1
- Memo1.Lines.Add (Append) - при занесении новой строки в окно редактирования
- Memo1.Lines.LoadFromFile('text.txt'); - загрузить текст из файла
- Memo1.Lines.SaveToFile('text.txt'); - сохранение текста в файле
- SelStart - позиция курсора в тексте
- Memo1.CaretPos.Y+1 и Memo1.CaretPos.X+1 - номер строки и символа в ней перед которым расположен курсор
Компоненты выбор из списков ListBox, CheckListBox, ComboBox.
Компоненты ListBox, ComboBox отображают списки строк.
ListBox только отображает данные и позволяет выбирать.
ComboBox позволяет также редактировать данные.
Основное свойство обоих компонентов - Items, имеющее тип Tstrings. Его можно заполнить в процессе проектирования. Во врямя выполнения работать с этим свойством можно, пользуясь свойствами иметодами класса Tstrings - Clear, add, и др.!!!!
CheckListBox выглядит как ListBox, но около каждой строки имеется индикатор, который пользователь может переключать, в том числе и программно. Все свойства компонета CheckListBox как списка аналогичны ListBox. Состояние индикаторов определяют два свойства - индексированные массивы: State и Checked, каждый элемент которых соответствует индексу строки, устанавливаемые в том числе и программно. При каждом щелчке пользователя на индикаторе его состояние изменяется, проходя в общем случае последовательно три значения: выделение(появление черной галочки), промежуточное (серое окно индикатора и серая галочка) и не выделенное ( пустое окно индикатора).Эти м трем состояниям соответствуют три значения свойства компонента State (при AllowGrayed=true):
CbChecked, CbGrayed, сbUnchecked
При AllowGrayed=false (значение по умолчанию) допускаются только два состояния: выделенное и не выделенное.
Проверять состояние индикатора можно не только по значению State, но и по значению свойства Checked. Если Checked=true, то индикатор выбран, а если false, State равно либо CbGrayed либо сbUnchecked. Обращение к свойствам:
CheckListBox1.Checked[1]:= true CheckListBox1. State[2]:= CbGrayed
Оператор
For I:=0 to CheckListBox1.Items.Count-1 do If CheckListBox1.Checked[i] then ...
В компоненте CheckListBox имеется также событие onClickCheck, возникающее при каждом изменении пользователем состояния индикатора. Его можно использовать для обработки результатов изменения.
Оставить комментарий
Комментарии
please, hello iz Tbilisi.
mari