- •Лекция 1. Методологии программирования
- •Лекция 2. Класс и ключевые понятия
- •Лекция 3. Uml-язык. Диаграммы классов Лекция 4. Архитектура программ в различных ос. Структура приложения в Delphi. Основные категории Delphi
- •Лекция 5. Библиотека визуальных компонентов. Описание компонентов vcl
- •Лекция 6. Библиотека визуальных компонентов. Описание компонентов vcl (продолжение)
- •Лекция 7. Форма. Элементы управления
- •Лекция 8. Описание компонентов vcl (продолжение): Ввод и выбор значений
- •Лекция 9. ModelMaker Список литературы
Лекция 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; Проверка ввода При вводе данных проводится проверка их на соответствие типу. Если типы не совпадают, то программа прерывает работу и выдает ошибку. Для корректной работы программы программист должен контролировать ввод. Рассмотрим один из способов контроля на программе: |
|