- •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 Варианты заданий
- •Приложение а
- •Приложение б
- •Приложение в
- •Приложение г
- •Приложение д
- •Приложение е
- •Список литературы
- •Содержание
4.2 Задание к лабораторной работе
4.2.1 Создать звездное небо, звезды мерцают. Включение эффекта «Мерцание» создается с помощью кнопок: таймер запускается и отключается. При срабатывании прерывания от таймера будет происходить мерцание. Звезды расположены в таблице в местах, которые при сквозном подсчете являются квадратом некоторого числа. Условием этого является: if frac(sqrt(k))=0. Цвет неба – черный, а звезды – белые.
План разработки программы:
1) Разместить на форме экземпляры компонентов DrawGrid, Timer и три кнопки в соответствии с рисунком 4.1.
2) Выделить объект DrawGrid 1, установить свойства
DefaultColWidth – 3;
DefaultRowHeight – 3;
DefaultDrawing - false;
GridLineWidth – 0;
ColCount – 175;
RowCount – 105;
BorderStyle – BsNone.
3) Выделить компонент Timer и установить значение свойства interval равным 100;
4) Активизировать кнопку start и в обработчик события записать команду:
timer1.Enabled:=true;
происходит включение таймера – звезды мерцают.
5) Активизировать кнопку stop и в обработчик события записать команду:
timer1.Enabled:=false;
происходит отключение таймера, звезды перестают мерцать.
6) Активизировать кнопку «Закрыть» и в обработчик события OnClick вставить строку:
close;
7) Активизировать таймер и в обработчик события записать следующие команды:
DrawGrid1.Canvas.Brush.Color:=clBlack; {макаем кисть в черную краску}
for i:=0 to 174 do
for j:=0 to 104 do
begin
area:= DrawGrid1.CellRect(j,i); {выделяем ячейку}
drawGrid1.Canvas.FillRect(area);{закрашиваем небо}
end;
k:=-1;
DrawGrid1.Canvas.Brush.Color:=clWhite;
for i:=0 to 174 do
for j:=0 to 104 do
begin
inc(k);
if frac(sqrt(k))=0 then {условие того, что ячейка
является звездочкой}
begin
area:= DrawGrid1.CellRect(j,i);
{присваивается области area
положение текущей ячейки}
drawGrid1.Canvas.FillRect(area);{закрашиваем звездочку
белым цветом}
end;
end;
Примечание: при вызове функции CellRect, определяющей прямоугольник этой ячейки, сначала указывается индекс столбца, а затем – индекс строки. Закрашивание всегда происходит текущим цветом кисти. Кисть - Canvas.Brush.Color.
Рисунок. 4.1
4.2.2 В целочисленной матрице А(5,5) поменять местами второй и четвертый столбец. Решить двумя способами: используя свойство Cells и свойство Rows.
План разработки программы:
1) со страницы Additional поместить два компонента StringGrid и со страницы Standard поместить три компонента Button в соответствии с рисунком 4.2;
2) задать свойствам компонентов StringGrid следующие значения
ColCount - 5;
RowCount - 5;
FixedCols – 0;.
FixedRows – 0;
Options – goEditing – true;
3) для компонентов Button1, Button2, Button3 задать значения свойства Caption так, как показано на рисунке;
4) активизировать кнопку Start1.З задача будет решаться при помощи свойства Cells. Создать следующий обработчик события OnClick
var i,j:integer;
begin
for j:=0 to 4 do
if (j<>1)and (j<>3) then
for i:=0 to 4 do
StringGrid2.Cells[j,i]:=StringGrid1.Cells[j,i];
for i:=0 to 4 do
begin
StringGrid2.Cells[1,i]:=StringGrid1.Cells[3,i];
StringGrid2.Cells[3,i]:=StringGrid1.Cells[1,i];
end;
end;
5) активизировать кнопку Start2. З задача будет решаться при помощи свойства Cols. Создать следующий обработчик события OnClick:
begin
stringgrid2.Cols[0]:=stringgrid1.Cols[0];
stringgrid2.Cols[1]:=stringgrid1.Cols[3];
stringgrid2.Cols[2]:=stringgrid1.Cols[2];
stringgrid2.Cols[3]:=stringgrid1.Cols[1];
stringgrid2.Cols[4]:=stringgrid1.Cols[4];
end;
6) активизировать кнопку Clear для очистки второй таблицы. Создать следующий обработчик события OnClick:
var i,j:integer;
begin
for i:=0 to 4 do
for j:=0 to 4 do
StringGrid2.Cells[j,i]:=' ';
7) активизировать кнопку Close, как в предыдущих заданиях.
8) сохранить проект в папке StringGrid: File – Save All. Запустить проект на выполнение.
Рисунок 4.2