- •1 Основные компоненты для работы с графикой
- •2 Свойства класса тCanvas
- •3 Методы и события класса тCanvas
- •4. Разработка простой программы
- •5. Создание «резиновой нити»
- •6. Реализация преобразования координатных систем
- •7. Добавление функции масштабирования изображения
- •8. Дополнительное задание
- •9. Заключение.
- •7 Контрольные вопросы
Тема: Реализация простой графической программы средствами Delphi
Основывается на лекции номер 3.
Цели работы:
Изучить объекты "Delphi", связанные с выводом графической информации;
Изучить методы создания графических изображений в системах использующих событийную модель;
Познакомиться с принципами формирования динамического изображения;
Познакомиться с основными компонентами графической системы.
Программа семинара
1 Основные компоненты для работы с графикой;
2 Свойства класса ТCanvas;
3 Методы и события класса ТCanvas;
4. Разработка простой программы;
5. Создание «резиновой нити»;
6. Реализация преобразования координатных систем;
7. Добавление функции масштабирования изображения;
8. Дополнительное задание;
9. Заключение;
7 Контрольные вопросы;
Во все современные инструментальные среды разработки приложений встроены средства работы с графикой. Не является исключением и среда Delphi, имеющая набор визуальных компонент и специализированных объектов, обладающих широкими возможностями работы с графической информацией. В ходе этого занятия мы познакомимся с этими компонентами и объектами, а также с некоторыми методами создания графических изображений. Полный текст программы, разрабатываемой в ходе семинара, можно найти на прилагаемом диске.
1 Основные компоненты для работы с графикой
В Delphi существует три визуальных компонента, предназначенных для создания пользователем геометрических примитивов:
Элемент управления изображением (компонент TImage). Используется для импорта в приложение растровых изображений, пиктограмм и метафайлов. Рисунок хранится в свойстве Picture.
Фигура (компонент TShape). Используется для создания стандартных геометрических фигур: окружностей, эллипсов, прямоугольников и квадратов как заполненных, так и нет. Свойство Shape определяет тип фигуры, а Pen и Brush - характеристики границ и заполнения, соответственно.
Элемент управления окном рисования (компонент TPaintBox). Используется для придания графических возможностей объектам, не имеющих свойства Сanvas, например, компоненту Panel.
Во всех других объектах графические операции выполняются с использованием свойства Canvas. Это свойство представлено объектом класса TСanvas, Оно поддерживается многими компонентами. Например, оно есть у TForm, TBitMap, TComboBox и TPaintBox. Свойство Сanvas предоставляет доступ к интерфейсу графических устройств Windows (Graphic Device Interface - GDI) и обеспечивает независимую от устройства область рисования графических объектов в окнах. Другими словами, методы объектов класса TСanvas вызывают функции Windows GDI.
2 Свойства класса тCanvas
Объект Canvas поддерживает восемь свойств. Значения этим свойствам присваиваются только во время работы программы, обычно в обработчике событий формы OnCreate или OnPaint.
Brush. Определяет цвет (Color) и шаблон (Style) заливки окружности, прямоугольника и многоугольника, а также основной цвет текста.
ClipRect. Отсекает графику за пределами прямоугольника, размер которого обычно совпадает с размером клиентской области окна. Для того, чтобы изменить размеры графического объекта, его подсвойствам Left, Top, Right и Bottom присваиваются новые значения.
CopyMode. Определяет, как обрабатывается изображение при вызове метода CopyRect объекта Canvas. (см. ниже). Например, CopyMode равный cmNotSourceCopy, инвертирует изображение попиксельно перед копированием.
Font. Подсвойства этого комплексного свойства используются для выбора стилей шрифтов, применяемых при выводе текста с помощью методов TextOut или TextRect объекта Canvas. Данный объект не имеет никакого отношения к свойству формы Font. Перед выводом текста не забудьте установить свойства Canvas.Font.
Handle. Используется в качестве параметра дескриптора контекста устройства при вызове методов GDI. Таким образом реализована возможность вызова отсутствующих в объекте Canvas функций GDI.
Pen. Воздействует на линии и контуры. Определяет цвет, стиль, ширину и режим выводимых линий соответствующими подсвойствами Color, Style, Width, Mode.
PenPos. Представляет относительные координаты объекта Pen (PenPos.X, PenPos.Y), которые определяют, где появится следующий графический объект. Несмотря на то, что Delphi разрешает присваивание свойству PenPos новых значений, для изменения местоположения объекта Pen следует вызывать метод MoveTо объекта Canvas.
Pixels. Двухмерный массив для обеспечения доступа к отдельным пикселям объекта Canvas. Каждый элемент массива является значением типа TColor. Например, выражение Pixels[0,0] возвращает цвет пикселя, имеющего координаты (0,0).
Свойство Pixels является псевдомассивом. Класс TCanvas преобразует ссылки на элементы Pixels[X, Y] в вызовы функций GetPixel и SetPixel. Поэтому применение Pixels считается одним из самых неэффективных методов, используемых при создании графических образов.
