Добавить в избранное 

a0-corner.gif (64 bytes)Home.gif (220 bytes)Zakaz.gif (388 bytes)java2.gif (300 bytes)Books.gif (225 bytes)Obmen.gif (232 bytes)e-mail.gif (177 bytes)



s-branch.gif (46 bytes)
  Услуги:
s-branch.gif (46 bytes)
  Сделать заказ
s-branch.gif (46 bytes)
  Исходники
s-branch.gif (46 bytes)
  Учебники
s-branch.gif (46 bytes)
  Java Script's
s-branch.gif (46 bytes)
  Ссылки
s-branch.gif (46 bytes)
  Обмен ссылками

 

 

 

 

 

 

 

 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Borland Delphi >Статьи

Компоненты ввода и отображения текстовой информации

Перечень компонентов ввода и отображения текстовой информации:

Компонент

Страница

Описание

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, возникающее при каждом изменении пользователем состояния индикатора. Его можно использовать для обработки результатов изменения.


Copyright © 2003 Web, e-mail: web@nordnet.ru

Hosted by uCoz