
- •Часть I
- •Содержание
- •Лабораторная работа №1. Интегрированная среда разработки Delphi. Обзор основных компонентов.
- •Пример создания простейшего Windows-приложения.
- •Содержание отчета.
- •Контрольные вопросы.
- •Лабораторная работа №2. Способы организации файлового ввода-вывода. Динамические массивы.
- •Переменные TextFileName и GraphFileName указывает путь к файлу.
- •Содержание отчета.
- •Контрольные вопросы.
- •Лабораторная работа №3. Обработка исключительных ситуаций в Delphi.
- •Вывод сообщений
- •Пример создания приложения с обработкой ис.
- •Содержание отчета.
- •Контрольные вопросы.
- •Лабораторная работа №4. Изучение графических возможностей Delphi.
- •Пример создания приложения, использующего графические возможности Delphi.
- •Содержание отчета.
- •Контрольные вопросы.
- •Литература.
Лабораторная работа №4. Изучение графических возможностей Delphi.
Цель работы: изучение графического инструментария Delphi, а также основных принципов объектно-ориентированного программирования.
Краткие теоретические сведения.
Для отображения графической информации в библиотеке Delphi предусмотрены компоненты: Image (Additional), PaintBox (System), DrawGrid (Additional), Chart (Additional). Кроме того, отображать и вводить графическую информацию можно на поверхности любого оконного компонента, имеющего свойство Canvas.
Богатство изобразительных возможностей Windows связано с так называемым дескриптором контекста графического устройства DC (Device Context) и тремя входящими в него инструментами - шрифтом, пером и кистью. В Delphi созданы специализированные классы-надстройки, существенно упрощающие использование графических инструментов Windows: для контекста - класс TCanvas, для шрифта - TFont, для пера - ТРеn и для кисти - TBrush. Связанные с этими классами объекты автоматически создаются для всех видимых элементов и становятся доступны программе через свойства Canvas, Font, Pen и Brush.
Как было сказано ранее, поверхности, на которую программа может выводить графику, соответствует свойство Canvas. В свою очередь, свойство Canvas — это объект типа TCanvas. Методы этого типа обеспечивают вывод графических примитивов (точек, линий, окружностей, прямоугольников и т. д.), а свойства позволяют задать характеристики выводимых графических примитивов: цвет, толщину и стиль линий; цвет и вид заполнения областей; характеристики шрифта при выводе текстовой информации.
Методы вывода графических примитивов рассматривают свойство Canvas как некоторый абстрактный холст, на котором они могут рисовать. Холст состоит из отдельных точек — пикселей. Положение пикселя характеризуется его горизонтальной (X) и вертикальной (Y) координатами. Левый верхний пиксель имеет координаты (0, 0). Координаты возрастают сверху вниз и слева направо. Значения координат правой нижней точки холста зависят от размера холста. Размер холста можно получить, обратившись к свойствам Height и Width области иллюстрации (PaintBox) или к свойствам формы: ClientHeight и Clientwidth.
Карандаш используется для вычерчивания точек, линий, контуров геометрических фигур: прямоугольников, окружностей, эллипсов, дуг и др. Вид линии, которую оставляет карандаш на поверхности холста, определяют свойства объекта ТРеn, которые перечислены в табл. 1.
Таблица 1. Свойства объекта ТРеn (карандаш)
-
Свойство
Определяет
Color
Цвет линии
Width
Толщину линии
Style
Вид линии
Свойство Color задает цвет линии, вычерчиваемой карандашом. Свойство width задает толщину линии (в пикселях). Например, инструкция Canvas.Pen.width: =2 устанавливает толщину линии в 2 пикселя. Свойство style определяет вид (стиль) линии, которая может быть непрерывной или прерывистой, состоящей из штрихов различной длины. В табл. 2 перечислены именованные константы, позволяющие задать стиль линии. Толщина пунктирной линии не может быть больше 1. Если значение свойства Pen.width больше единицы, то пунктирная линия будет выведена как сплошная.
Таблица 2. Значение свойства Реn. Style определяет вид линии
-
Константа
Вид линии
psSolid
Сплошная линия
psDash
Пунктирная линия, длинные штрихи
psDot
Пунктирная линия, короткие штрихи
psDashDot
Пунктирная линия, чередование длинного и короткого штрихов
psDashDotDot
Пунктирная линия, чередование одного длинного и двух коротких штрихов
psClear
Линия не отображается (используется, если не надо изображать границу области, например, прямоугольника)
Свойство Mode определяет, как будет формироваться цвет точек линии в зависимости от цвета точек холста, через которые эта линия прочерчивается. По умолчанию вся линия вычерчивается цветом, определяемым значением свойства Pen.Color.
Кисть (Canvas.Brush) используется методами, обеспечивающими вычерчивание замкнутых областей, например геометрических фигур, для заливки (закрашивания) этих областей. Кисть, как объект, обладает двумя свойствами, перечисленными в табл. 3.
Таблица 3. Свойства объекта TBrush (кисть)
-
Свойство
Определяет
Color
Цвет закрашивания замкнутой области
Style
Стиль (тип) заполнения области
Область внутри контура может быть закрашена или заштрихована. В первом случае область полностью перекрывает фон, а во втором — сквозь незаштрихованные участки области будет виден фон. В качестве значения свойства Color можно использовать любую из констант типа TColor. Константы, позволяющие задать стиль заполнения области, приведены в табл. 4.
Таблица 4. Значения свойства Brush.Style определяют тип закрашивания
-
Константа
Тип заполнения (заливки) области
bsSolid
Сплошная заливка
bsClear
Область не закрашивается
bsHorizontal
Горизонтальная штриховка
bsVertical
Вертикальная штриховка
bsFDiagonal
Диагональная штриховка с наклоном линий вперед
bsBDiagonal
Диагональная штриховка с наклоном линий назад
bsCross
Горизонтально-вертикальная штриховка, в клетку
bsDiagCross
Диагональная штриховка, в клетку