- •1 Лабораторная работа. Создание проекта с использованием компонентов Edit, Label, Memo, Button
- •1.1 Этапы создания оконного приложения
- •1.2 Задание к лабораторной работе
- •1.3 Контрольные вопросы
- •1.4 Варианты заданий
- •2 Лабораторная работа. Использование компонентов ListBox, ComboBox
- •2.1 Списки ListBox, ComboBox
- •2.2 Задание к лабораторной работе
- •2.3 Контрольные вопросы
- •2.4 Варианты заданий
- •3 Лабораторная работа. Панель переключателей RadioGroup и список выключателей CheckListBox
- •3.1 Панель переключателей RadioGroup и список выключателей CheckListBox
- •3.2 Задание к лабораторной работе
- •3.3 Контрольные вопросы
- •3.4 Варианты заданий
- •4 Лабораторная работа. Использование таблиц DrawGrid и StringGrid и компонента Timer
- •4.1 Компоненты DrawGrid и StringGrid
- •4.2 Задание к лабораторной работе
- •4.3 Контрольные вопросы
- •4.4 Варианты заданий
- •5 Лабораторная работа. Создание меню. Компоненты Main Menu и Popup Menu
- •5.1 Компоненты Main Menu и Popup Menu
- •5.2 Задание 1 к лабораторной работе
- •5.3 Компоненты ToolBar и StatusBar
- •5.4 Задание 2 к лабораторной работе
- •5.5 Контрольные вопросы
- •5.5 Задания к лабораторной работе
- •6 Лабораторная работа. Построение графиков математических функций. Построение диаграмм с помощью компонента Chart
- •6.1 Поверхность рисования
- •6.2 Система координат
- •6.3 Графические инструменты
- •6.4 Задание 1 к лабораторной работе
- •6.5 Компонент Chart (для отображения графиков и диаграмм)
- •6.6 Задание 2 к лабораторной работе
- •6.7 Контрольные вопросы
- •6.8 Варианты заданий
- •Приложение а
- •Приложение б
- •Приложение в
- •Приложение г
- •Приложение д
- •Приложение е
- •Список литературы
- •Содержание
2.1 Списки ListBox, ComboBox
В Delphi часто приходится иметь дело с различными списками, например, списками строк текстового редактора Memo. Стандартный компонент Listbox (вкладка Standard палитры компонентов) предназначен непосредственно для отображения списка строк на экране.
Основные свойства компонента ListBox:
- ItemIndex: integer; определяет индекс выделенного элемента в списке. Нумерация элементов начинается с нуля. Если выделенного элемента нет, это свойство принимает значение, равное -1. Свойство доступно только на этапе выполнения программы;
- Item: Tstrings; задает элементы списка;
- MultiSelect:Boolean; определяет, разрешается ли одновременно выделять несколько элементов списка: если имеет значение True, то такое выделение возможно, в противном случае выделить можно только один элемент;
- Selected[Index:integer]:Boolean; если i-тый элемент выделен, то Selected[i] равняется True, , в противном случае - False. Свойство доступно только на этапе выполнения программы.
- Sorted:Boolean; указывает, должны ли строки в списке автоматически сортироваться в алфавитном порядке.
- Clear; удаляет все элементы списка.
СomboBox –комбинированная строка ввода. Страница Палитры Компонентов – Standard.
Комбинированная строка ввода СomboBox объединяет в себе возможности строки ввода Edit и списка List Box. По внешнему виду напоминает Edit, но дополнительно имеет в правой части кнопку со стрелкой, направленной вниз.
Если щелкнуть по этой кнопке, появится выпадающий список. Основное отличие от ListBox – возможность вводить в список новые элементы, отображать активный элемент.
В компоненте СomboBox отсутствует свойство MultiSelect, поэтому не допускается множественный выбор.
Основные свойства Сombo Box:
- ItemIndex: integer; определяет индекс выделенного элемента в списке. Нумерация элементов начинается с нуля. Если выделенного элемента нет, это свойство принимает значение, равное -1. Свойство доступно только на этапе выполнения программы;
- Item: Tstrings; задает элементы списка;
- DropDownCount: integer; отображает максимальное число элементов, отображаемое в раскрывающемся списке.
- DroppedDown:Boolean; указывает, отображается ли раскрывающийся список в данный момент. Свойство доступно только на этапе выполнения программы.
- Sorted:Boolean; указывает, должны ли строки в списке автоматически сортироваться в алфавитном порядке.
- Text: String; содержит текс выбранной или введенной пользователем строки.
- Clear; удаляет все элементы списка.
2.2 Задание к лабораторной работе
2.2.1 Создать программу, которая при выборе из списка с помощью мыши названия цвета и нажатии на кнопку на экране отображает название цвета на русском языке и код цвета в формате RGB. Программа заканчивает свою работу при нажатии кнопки «Close».
План разработки программы:
1) разместить на форме экземпляры компонентов в соответствии с рисунком 2.1;
2) сохранить новый проект – File – Save All. Создать новую папку, дать название «Справочник», открыть папку;
Рисунок 2.1
3) Сохранить код программы и проект под именами, например, Unit1.pas и Project1.dpr.
4) Установить следующие свойства для компонентов:
Выделенный объект
|
Вкладка окна Object Inspector |
Имя свойства/ имя события |
Действие |
BitBtnl |
Properties |
Caption |
Установка имени кнопки: «Выход» |
|
|
Kind |
bk Close |
Label 1 |
Properties |
Caption |
Ввод надписи «Справочник записи цвета в формате RGB» |
Label2 |
Properties |
Caption |
Ввод надписи «Цвет Формат RGB» |
Label3 |
Properties |
Caption |
Удаление названия и кода цвета |
5) Запустить программу, затем закрыть окно проекта, щелкнув на кнопке «Выход».
6) Выделить объект ListBox1, найти свойство Items, щелкнуть на кнопке с тремя точками, расположенной справа от него. В появившемся окне встроенного редактора (см. рисунок 2.2) ввести названия цветов, каждый на новой строке.
|
|
|
Рисунок 2.2
7) Сохранить набранный текст под именем color.txt Для этого нажать правую кнопку мыши и выбрать режим Save. Для выхода из встроенного редактора щелкнуть на кнопке ОК.
8) Чтобы при установке курсора мыши в поле List Box1 появлялась подсказка о том, что надо сделать, необходимо воспользоваться свойствами Hint (текст сообщения) - «выделить строку и щелкнуть на кнопке», Showhint (показывать ли сообщение) объекта ListBox1.
9) Активизировать двойным щелчком кнопку «Перевести» и в заготовку обработчика события OnClick поместить следующий код:
сase listBox1.ItemIndex of
0: Label3.Caption:= 'черный ОООООО';
1: Label3.Caption:=' белый FFFFFF' ;
2: Label3.Caption:=' красный FFOOOO' ;
3: Label3.Caption:=' зеленый OOFFOO' ;
4: Label3.Caption:= 'бирюзовый OOFFFF';
5: Label3.Caption:=' синий OOOOFF';
6: Label3.Caption:=' фиолетовый FFOOFF';
7: Label3.Caption:= ' желтый FFFFOO';
8: Label3.Caption:= 'коричневый 996633';
9 : Label3.Caption:= ' оранжевый FF8000';
10: Label3.Caption:= ' липовый 8000FF';
11: Label3.Caption:=' серый АОАОАО';
end;
10) Сохранить проект окончательно, запустить и протестировать его.
2.2.2 В целочисленном массиве найти максимальный и минимальный элементы и поменять их местами. Использовать компонент СomboBox –комбинированная строка ввода. Элементы массива вводятся в компонент СomboBox1. При нажатии на кнопку Ввод данные вводятся в память. Элементы новой матрицы, в которой максимальный и минимальный элементы поменялись местами, выводятся в компонент СomboBox2.
Рисунок 2.3
План разработки программы:
1) для нового проекта создать новую папку, например, Combobox;
2) открыть новый проект;
3) со страницы Standard поместить на Form1 компоненты, согласно рисунку 2.3: button1, button2, ComboBox1, ComboBox2.
4) свойство DropDownCount для ComboBox1, ComboBox2 равно 10.
5) в разделе interface описывается массив и используемые переменные: a:array[1..10] of integer; i, min, max, imax, imin:integer;
6) для того чтобы ввести начальные значения, с которыми программа начнет свою работу, в момент создания формы, используется событие OnCreate для формы. Для создания заготовки этого события необходимо выполнить двойной щелчок по форме и поместить там следующие строки:
i:=0;
comboBox1.Clear;
combobox2.Clear;
combobox1.TabOrder:=0;
7) для кнопки Ввод написать обработчик события:
begin
combobox1.items.add(combobox1.Text);
i:=i+1;
a[i]:=strtoint(combobox1.Text);
combobox1.SetFocus;
end;
8) для кнопки Решение написать обработчик события:
procedure Tform1.Button2Click(Sender: Tobject);
var k:integer;
begin
max:=a[1];
maxi:=1;
min:=a[1];
mini:=1;
for k:=2 to 10 do
begin
if max<a[k] then
begin
max:=a[k];
maxi:=i;
end;
if min>a[k] then
begin
min:=a[k];
mini:=i;
end;
end;
a[maxi]:=min;
a[mini]:=max;
for k:=1 to 10 do
combobox2.Items.Add(inttostr(a[k]));
combobox2.DroppedDown:=true;
end;
9) сохранить проект окончательно и запустить его.