Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Рабочая тетрадь по ООП.doc
Скачиваний:
6
Добавлен:
09.11.2019
Размер:
320 Кб
Скачать

Лекция 8. Описание компонентов vcl (продолжение): Ввод и выбор значений

Ввод и выбор значений

Общим для этих компонентов является то, что с их помощью можно интерактивно выбрать или установить значения каких-либо величин.

Компонент TListBox

Этот компонент соответствует списку выбора – стандартному элементу управления Windows.

С его помощью пользователь может выбрать одну из строк, которые хранятся в свойстве:

Items :TString;

ItemIndex : Integer; - индекс текущего сфокусированного элемента списка Значение индекса лежит в диапазоне от 0 до Items.Count-1. Индекс доступен для чтения и записи.

TopIndex: Integer; - индекс первого видимого элемента в списке (в окне).

Sorted : Boolean; - сортировка списка.

Множественный выбор:

MultiSelect : Boolean;

ExtendedSelect : Boolean;

IntergralHeight : Boolean; - подгонка компонента под ширину одной строки.

Пример использования компонента ListBox.

Поместить на форму несколько картинок. Установить у всех Visible = False.

Поместить на форму компонент ListBox.

Щелкнуть по кнопке в поле значения Items. Откроется диалоговое окно Strings List Editor.

Ввести список и закрыть окно.

Изменить шрифт в свойстве Font компонента ListBox на 20пунктов и для подгонки размеров компонента установить IntergralHeight = True.

Написать программный код события OnClick компонента ListBox

procedure TForm1.ListBox1Click(Sender: Object);

begin

With ListBox1 do

case ItemIndex of

0: form1.Image1.Visible:= True;

1: form1.Image2.Visible:= True;

………………………………………

end;

end;

Выбранный в ListBox текст, можно перенести в редактор:

Edit1.Text := ListBox1.Items[ListBox1.ItemIndex];

и наоборот, из компонента TEdit перенести в список ListBox:

ListBox2.Items.Add(Edit2.Text);

Компонент TComboBox

выпадающий список – имеет много общего с TListBox.

Позволяет пользователю выбрать одно значение из многих.

Представляет собой однострочный редактор, к которому прикреплен выпадающий список.

Редактор служит для ввода нового значения, список – для выбора соответствующего значения.

Количество элементов в списке может быть произвольным, причем элементы можно добавлять, удалять.

Элементами могут быть текстовые строки и графические рисунки.

Свойства:

Text – текст в редакторе компонента,

Sorted : boolean; – сортировка списка,

Items – элементы выпадающего списка,

ItemIndex – порядковый номер выбранного в списке элемента, начиная с 0. Это свойство доступно только из программы,

Style – стиль отображения списка:

- csDropDown - пользователь может выбирать или вводить

- csDropDownList – допускающий только выбор элементов.

Чтобы вставить новую строку и перенести её из редактора компонента в его список :

If key = #13 then

begin

ComboBox1.Items.Add(ComboBox1.Text);

ComboBox1.Text := '';

Key := 0;

end;

Часто используют компоненты ListBox и ComboBox совместно:

procedure TForm1.ComboBox1Change(Sender: TObject);

var i:integer;

begin

case ComboBox1.ItemIndex of

0: begin For i:=0 to ListBox1.Count – 1 Do ListBox1.Selected[i] := false;

For i:=0 to 3 Do

ListBox1.Selected[i] := true;

end;

1: …….//далее аналогично, за исключением

end; //параметров внутреннего цикла

end; //от 4 до 8, 9-12 и т.д.

Рассмотрим пример. На форме расположены компоненты:

procedure TForm1.Button1Click(Sender: TObject);

begin

If ColorDialog1.Execute then Form1.Color := ColorDialog1.Color;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

If ColorDialog2.Execute then Shape1.Brush.Color := ColorDialog2.Color;

end;

procedure TForm1.ComboBox1Change(Sender:tobject);

begin

Shape1.Shape:=TShapeType(ComboBox1.ItemIndex);

end;

procedure TForm1.ScrollBar1Change(Sender: TObject);

begin

Shape1.Width:=ScrollBar1.Position;

end;

procedure TForm1.ScrollBar2Change(Sender: TObject);

begin

Shape1.Height:=ScrollBar2.Position;

end;

Новый пример:

Необходимо написать процедуры:

кнопки Добавить,

кнопки Удалить,

кнопки Редактировать,

кнопки Сохранить в файле,

кнопки Очистить,

выбор режима чтения,

загрузка файла при создании формы,

сохранение данных перед закрытием,

обработка Enter в ComboBox,

обработка Click в ComboBox(для Lable),

обработка изменений в ComboBox.

Компонент TCheckListBox

Расположен на вкладке Additional.

Предназначен для множественного выбора.

Наследует свойства компонента TListBox.

State[index]:TCheckBoxState (cbUnchecked, cbChecked, cbGrayed)– анализ состояния переключателя «выбрано».

procedure TForm1.Button1Click(Sender: TObject);

Const n=7;

var i,s :integer;

begin

s:= 0;

For i := 0 to n do

if CheckListBox1.State[i] = cbChecked then s :=

s + StrToInt(listBox1.Items[i]);

ShowMessage (''+ IntToStr(s));

end;

Компонент ColorBox (Additional)

Предназначен для выбора цветовых характеристик.

Style – набор цветов,

OnChange – возникает в момент выбора цвета,

Color – заносится результат выбора цвета.

Shape1.Brush.Color := ColorBox1.Selected;

Компонент UpDown (Win95)

Используют для ввода целых чисел.

Представляет собой пару кнопок с противоположно направленными стрелками.

Компонент применяют (ассоциируют) с компонентом Edit.

Associate – связь с ассоциированным компонентом (Edit),

Min, Max - диапазон изменения чисел,

Position - числовое значение, с которого по умолчанию отображается последовательность,

Orientation – ориентация стрелок.

Компонент TScrollBar

- представляет собой стандартный бегунок Windows.

Также может использоваться для выбора значений в заданном диапазоне.

Kind - задает один из типов бегунка ( горизонтальный, вертикальный).

Max, Min : Integer: максимальное, минимальное значение положения бегунка.

Position : integer; - текущее положение бегунка.

Разработаем приложение «Смеситель красок».

Поместим на форму следующие компоненты:

procedure TForm1.RedBarChange(Sender : TObject);

begin

Panel1.Color := RGB(RedBar.Position, 0, 0);

Label1.Caption := IntToStr(RedBar.Position);

Panel4.Color := RGB(RedBar.Position, GreenBar.Position, Bluebar.Position);

end;

Проверка ввода

При вводе данных проводится проверка их на соответствие типу.

Если типы не совпадают, то программа прерывает работу и выдает ошибку.

Для корректной работы программы программист должен контролировать ввод.

Рассмотрим один из способов контроля на программе: