Перечень компонентов ввода и отображения текстовой
информации:
Компонент |
Страница |
Описание |
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, возникающее при каждом изменении пользователем состояния
индикатора. Его можно использовать для обработки результатов изменения.
|