- •Компоненты
- •Событие и функция обработки события
- •Редактор кода
- •Система подсказок
- •Навигатор классов
- •Шаблоны кода
- •Справочная система
- •Сохранение проекта
- •Компиляция
- •Предупреждения и подсказки
- •Компоновка
- •Запуск программы
- •Ошибки времени выполнения
- •Внесение изменений
- •Настройка приложения
- •Название программы
- •Значок приложения
- •Перенос приложения на другой компьютер
- •Структура простого проекта
- •2. Задание на выполнение работы
- •1. Электроэнергия.
- •2. Игра «угадай число».
- •3. Гороскоп
- •4. Межгород
- •6. Алфавит
- •7. Палиндром
- •8. Метеослужба
- •9. Статистика
- •10. Кафе.
- •Лабораторная работа №22 Графика.
- •Карандаш и кисть
- •Графические примитивы
- •Ломаная линия
- •Прямоугольник
- •Многоугольник
- •Окружность и эллипс
- •Лабораторная работа №23 Иллюстрации
- •Битовые образы
- •Мультипликация
- •Метод базовой точки
- •Использование битовых образов
- •Загрузка битового образа из ресурса программы
- •Создание файла ресурсов
- •Подключение файла ресурсов
- •Int w, h; // размер кадра
- •Int с; // номер воспроизводимого кадра
- •Лабораторная работа №25
- •1. База данных и субд
- •Локальные и удаленные базы данных
- •Структура базы данных
- •Псевдоним
- •Компоненты доступа и манипулирования данными
- •Создание базы данных
- •Доступ к базе данных Доступ к базе данных обеспечивают компоненты Database, Table, Query и DataSource. Значки этих компонентов находятся на вкладках Data Access и bde (рис. 25.8).
- •Отображение данных
- •Манипулирование данными
- •Выбор информации из базы данных
- •Перенос программы управления базой данных на другой компьютер
- •2. Задание на выполнение работы
- •Литература
Карандаш и кисть
Рассмотренные методы обеспечивают только вычерчивание примитивов. Они не определяют толщину линии, цвет и другие свойства. Вид графического элемента определяют свойства Реn(карандаш) и Brush (кисть) той поверхности (Canvas), на которой рисует метод. Карандаш и кисть, являясь свойствами объекта Canvas, в свою очередь представляют собой объекты Реn и Brush. Свойства объекта Реn (табл. 22.2) задают цвет, толщину и тип линии или границы геометрической фигуры. Свойства объекта Brush (табл. 22.3) задают цвет и способ закраски области внутри прямоугольника, круга, сектора или замкнутого контура.
Таблица 22.2. Свойства объекта Реn (карандаш)
Свойство |
Определяет |
Color |
Цвет линии |
Width |
Толщину линии (задается в пикселах) |
Style |
Вид линии: psSolid - сплошная; psDash - пунктирная, длинные штрихи; psDot - пунктирная, короткие штрихи; psDashDot - пунктирная, чередование длинного и короткого штрихов; psDashDotDot - пунктирная, чередование одного длинного и двух коротких штрихов; psClear - линия не отображается (используется, если не надо изображать границу области - например, прямоугольника) |
Таблица 22.3. Свойства объекта Brush (кисть)
Свойство |
Определяет |
Color |
Цвет закрашивания замкнутой области |
Style |
Стиль заполнения области: bsSolid - сплошная заливка. Штриховка: bsHorizontal - горизонтальная; bsVertical - вертикальная; bsFDiagonal - диагональная с наклоном линий вперед; bsBDiagonal - диагональная с наклоном линий назад; bsCross - в клетку; bsDiagCross - диагональная клетка |
Ниже приведена функция обработки события onPaint, которая рисует на поверхности формы олимпийский флаг.
Листинг 22.2.
//олимпийский флаг
void__fastcall TForml::FormPaint(TObject *Sender)
{
// полотнище флага
Canvas->Pen->Width = 1;
Canvas->Pen->Color = clBlack;
Canvas->Brush->Color = clCream;
Canvas->Rectangle(30,30,150,150);
Canvas->Pen->Width =2; // ширина колец
Canvas->Brush->Style=bsClear; /* чтобы круг,
нарисованный методом Ellipse, не был закрашен
рисуем кольца */
Canvas->Pen->Color = clBlue;
Canvas->Ellipse(40,40,80,80) ;
Canvas->Pen->Color = clBlack;
Canvas->Ellipse(70,40,110,80);
Canvas->Pen->Color = clRed;
Canvas->Ellipse(100,40,140,80);
Canvas->Pen->Color = clYellow;
Canvas->Ellipse(55,65,95,105);
Canvas->Pen->Color = clGreen;
Canvas->Ellipse(85,65,125,105);
}
Задание2.
Создайте программу, которая вычерчивает график функции y=sinx путем соединения отрезками прямой соседних точек. Если количество таких точек достаточно велико, то изломы становятся незаметными.
Графические примитивы
Любая картинка, чертеж или схема могут рассматриваться как совокупность графических примитивов: точек, линий, окружностей, дуг и др. Карандаш и кисть дают существенное величение возможностей для рисования примитивов.
Линия
Вычерчивание прямой линии выполняет метод LineTo. Метод рисует линию из той точки, в которой в данный момент находится карандаш (эта точка называется текущей позицией карандаша или просто "текущей"), в точку, координаты которой указаны в инструкции вызова метода. Например, оператор
Canvas->LineTo(100,200)
рисует линию в точку с координатами (100, 200), после чего текущей становится точка с координатами (100, 200).
Начальную точку линии можно задать, переместив карандаш в нужную точку графической поверхности. Сделать это можно при помощи метода MoveTo, указав в качестве параметров координаты точки начала линии. Например, операторы
Canvas->MoveTo(10,10); // установить карандаш в точку (10,10)
Canvas->LineTo(50,10); // линия из точки (10,10)в точку (50,10)
рисуют горизонтальную линию из точки (10, 10) в точку (50, 10). Используя свойство текущей точки, можно нарисовать ломаную линию. Например, операторы
Canvas->MoveTo(10,10) ;
Canvas->LineTo(50,10) ;
Canvas->LineTo(10,20) ;
Canvas->LineTo(50,20) ;
рисуют линию, похожую на букву Z.