- •Введение
- •1. Знакомство со средой программирования BorlandDelphi
- •Некоторые команды редактора. При написании программы можно использовать следующие комбинации клавиш для упрощения набора текста:
- •1.2. Создание программы «Моя первая программа»
- •2. Условные операторы
- •2.1. Теоретические сведения
- •Условные операторы. Условный оператор позволяет выбирать одно из двух действий, причем выбор осуществляется во время выполнения программы. Существует 2 вида условных операторов:
- •2.2. Создание программы «Попадание точки в фигуру»
- •Индивидуальное задание
- •3. Операторы цикла
- •3.1. Теоретические сведения Стандартные функции. Для выполнения часто встречающихся вычислений и преобразования данных в Object Pascal существуют стандартные функции.
- •Отладка программы. При построении сложных программ могут возникать ошибки. Их принято делить на 3 группы:
- •3.2. Создание программы «Степенные ряды»
- •Индивидуальное задание
- •4. Тип данных массив
- •4.1. Теоретические сведения
- •Типичные действия с массивом. Вывод массива; ввод массива; поиск максимального или минимального элемента массива; поиск в массиве заданного элемента; сортировка массива.
- •4.2. Создание программы «Работа с массивом»
- •Индивидуальное задание
- •5. Графические примитивы
- •5.2. Создание программы «Графические примитивы»
- •Индивидуальное задание
- •Стандартные диалоговые окна. Для вывода различных сообщений можно использовать стандартные диалоговые окна Delphi. Диалоговые окна запускаются командой:
- •6.2. Создание программы «Редактор текста»
- •Индивидуальное задание
- •7. Работа с базами данных
- •7.1. Теоретические сведения
- •7.2. Создание программы «Список студентов»
- •Индивидуальное задание
- •8. Выполнение курсового проекта
- •8.1. Варианты курсовых работ
- •Заключение
- •Список рекомендуемой литературы
5.2. Создание программы «Графические примитивы»
Задача. Написать программу, формирующую графическое изображение, используя графические примитивы.
Окно программы представлено на рис. 5.4.
Процесс создания программы происходит по следующему алгоритму:
Запустить Delphi.
Сохранить проект («work5.dpr», «main.pas»).
Настроить вид экрана:
настроить размеры формы: ширину (свойство Width) установить в 600, а высоту (свойство Height) – в 370;
форма содержит всего 2 элемента: видимый элемент – кнопка (Button) и элемент таймер (Timer) для создания мультфильма. Все остальные элементы создаются программно: изменить заголовок окна: Графические примитивы (Caption);
поместить кнопку для программирования выхода (Button, Standard, ): назвать кнопку BQuit (Name);
поместить на форму элемент таймера (Timer, System, ); установить время обращения к этому элементу – 1 раз в секунду (1000 мс); так как значения таймера задаются в миллисекундах, убедиться, что значение Interval равно 1000.
Форма настроена!
Запрограммировать выход из программы: команда «Close» при нажатии на кнопку BQuit.
Чтобы осуществить прорисовку изображения сразу при запуске программы, настроить событие прорисовки окна – onPaint (щелкнуть на форму (Form1), выбрать свойство onPaint, вкладка Events в Инспекторе объектов), щелкнуть на этом событии.
Запрограммировать правую часть окна на рис. 5.4:
назначить область рисования Canvas – набрать после begin текст:
with canvas do //Обращаемся к свойствам холста
begin
{Область рисования}
end;
для вывода текста настроить цвет фона и свойства шрифта (набрать текст после строки {Область рисования}):
Brush.Color := clBtnFace; //Цвет фона – цвет кнопки в стандарте Windows
with Font do //Обращаемся к свойствам шрифта
begin
Name := 'Times New Roman'; //Имя шрифта
Size := 12; //Размер шрифта
Style := [fsBold,fsItalic]; //Стиль – жирный курсив
end;
{Настройка шрифта закончена}
набрать текст программирования примитивов:
TextOut(410,22,'(TextOut)'); //Вывод текста
Pen.Color := clBlack; //Цвет карандаша – черный
Brush.Color := clWhite; //Цвет кисти – белый
Pixels[350,80] := clRed; //Вывод точки
Brush.Color := clBtnFace;
{Смена цвета на цвет фона (цвет кнопки в стандарте Windows)
для вывода текста-подсказки}
TextOut(335,85,'(Pixels)');
Brush.Color := clWhite;
MoveTo(400,80); //Переместить курсор
LineTo(450,80); //Соединить с точкой – получится линия
Brush.Color := clBtnFace;
TextOut(405,85,'(MoveTo)');
TextOut(405,100,'(LineTo)');
Brush.Color := clWhite;
PolyLine([Point(480,100),Point(505,50),Point(530,100)]); //Ломаная кривая
Brush.Color := clBtnFace;
TextOut(480,105,'(PolyLine)');
Brush.Color := clWhite;
Rectangle(325,125,375,175); //Прямоугольник
Brush.Color := clBtnFace;
TextOut(325,180,'(Rectangle)');
Brush.Color := clWhite;
RoundRect(400,125,455,175,20,20); //Прямоугольник с закругленными углами
Brush.Color := clBtnFace;
TextOut(400,180,'(RoundRect)');
Brush.Color := clWhite;
PolyGon([Point(480,175),Point(505,125),Point(530,175)]); //Многогранник
Brush.Color := clBtnFace;
TextOut(480,180,'(PolyGon)');
Brush.Color := clWhite;
Ellipse(325,210,375,260); //Эллипс
Brush.Color := clBtnFace;
TextOut(335,270,'(Ellipse)');
Brush.Color := clWhite;
Arc(400,210,455,260,427,210,455,235); //Дуга
Brush.Color := clBtnFace;
TextOut(420,270,'(Arc)');
Brush.Color := clWhite;
Pie(480,210,530,260,530,234,504,210); //Сектор
Brush.Color := clBtnFace;
TextOut(500,250,'(Pie)');
для демонстрации мультипликации запрограммировать перемещение глаз у кота «влево – вправо». Добавить начальную прорисовку глаз:
Pen.Color := clWhite; //Цвет глаз – белый – карандаш
Brush.Color := clWhite; //Цвет глаз – белый – кисть
//Таким образом, рисуем и закрашиваем одним цветом
Ellipse(73,105,113,147); // Левый глаз
Ellipse(138,105,178,147); // Правый глаз
Pen.Color := clGreen; //Цвет зрачков – зеленый
Brush.Color := clGreen; //Цвет зрачков – зеленый
Pie(85,115,110,145,90,135,60,145); // Левый зрачок
Pie(150,115,175,145,155,135,75,145); // Правый зрачок
end; // Конец рисования на холсте
Замечание. При программировании сложного изображения следует располагать элементы послойно – сначала те, что расположены на нижнем фоне, а затем те, что выше.
Запрограммировать изменение положения зрачков:
необходимо ввести глобальную переменную, которая будет отвечать за сторону, куда смотрят глаза: в программе найти строчку implementation (необходима глобальная переменная) и ввести в разделе переменных переменную B логического типа:
var
B : Boolean;
вернуться на изображение формы (нажать <F12>) и выбрать событие onActivate у формы, щелкнуть на нем и ввести следующий текст:
B := true; // Начальное значение переменной B
снова вернуться на изображение формы, выбрать объект Timer и запрограммировать его свойство onTimer – перерисовка, набрать следующий текст:
with Canvas do //Снова обращаемся к холсту
begin
If B then //Если глаза смотрят вправо
begin
//Закрашиваем правые зрачки цветом глаза – белым
Pen.Color := clWhite;
Brush.Color := clWhite;
Pie(85,115,110,145,90,135,60,145); // Левый зрачок
Pie(150,115,175,145,155,135,75,145); // Правый зрачок
// Цвет зрачка – зеленый
Pen.Color := clGreen;
Brush.Color := clGreen;
//Рисуем левые зрачки
Pie(75,115,100,145,80,135,50,145); // Левый зрачок
Pie(140,115,165,145,145,135,65,145); // Правый зрачок
B := False; //Глаза смотрят влево
end
else
begin
//Аналогично, если глаза смотрели влево
//Закраска фоном
Pen.Color := clWhite;
Brush.Color := clWhite;
Pie(75,115,100,145,80,135,50,145); // Левый зрачок
Pie(140,115,165,145,145,135,65,145); // Правый зрачок
//Рисуем правые зрачки
Pen.Color := clGreen;
Brush.Color := clGreen;
Pie(85,115,110,145,90,135,60,145); // Левый зрачок
Pie(150,115,175,145,155,135,75,145); // Правый зрачок
B := True; //Глаза смотрят вправо
end;
end;
программа завершена!
Запустить программу – <F9>.