- •Работа с графикой Компонент Область рисования (tPaintBox)
- •Обработка событий. Создание игры.
- •Работа с графикой Понятие холста
- •Принцип отрисовки изображений в Windows
- •Класс tGraphics
- •Свойства и методы класса tCanvas
- •Свойства холста
- •Наследники класса tGraphics Класс Точечное изображение (tBitmap)
Работа с графикой Понятие холста
Вся технология вывода графической информации на экран основывается на понятии холста (класс TCanvas). Этот класс обладает всеми возможностями для отображения такой информации, и на его основе создано большинство компонентов Delphi 7, которые представляют собой элементы управления и должны отрисовываться на экране с использованием средств этого класса.
По умолчанию область холста совпадает с клиентской областью формы или элемента управления. Эта область представляет собой ту часть объекта, которая не занята какими-то вспомогательными деталями оформления (например, заголовком окна, строкой меню, панелью командных кнопок, границами объекта), недоступными для вывода на них графической информации.
Класс TCanvas имеет набор стандартных свойств и методов, позволяющих выполнять простейшие графические операции. Работа большинства этих методов основана на понятии графического курсора — виртуальной точки, определяющей начало выполнения очередной операции (например, точки, из которой будет рисоваться линия).
Принцип отрисовки изображений в Windows
После того как на холст выведена графическая информация, она отображается в рамках формы до тех пор, пока область холста не закроется другим окном или приложение не будет свернуто, то есть пока область холста не окажется закрытой (возможно, частично). При новом появлении этой области на экране графические данные, выведенные на нее ранее, не восстановятся, и их придется выводить снова. В какой момент это лучше делать? Когда область холста становится видимой, Windows генерирует системное сообщение WM_PAINT, описывающее ту часть формы, которая требует перерисовки. В системе Delphi 7 такое сообщение обозначается On Paint. Оно автоматически обрабатывается формами и элементами управления при необходимости их отображения и обычно не требует вмешательства со стороны программиста. Исключением являются те случаи, когда форма используется именно для вывода графической информации: всевозможных графиков, мультимедийных данных и т. п.
Перед тем как перейти к рассмотрению конкретных свойств, остановимся на таком важном классе, как TGraphics.
Класс tGraphics
Данный класс является абстрактным и сам по себе не применяется. На его основе созданы классы, предназначенные для использования в программах конкретных графических объектов (точечное изображение, значок и прочие).
От TGraphics такие объекты наследуют свойства, приведенные в табл. 1. Методы класса TGraphics имеют характеристики virtual и abstract и определяются в конкретных классах-наследниках. Они приведены в табл. 2.
Таблица 1. Наследуемые свойства класса TGraphics
Свойство |
Назначение |
Width Height |
Ширина и высота объекта в пикселах |
Modified |
Имеет значение True, если объект был изменен (например, отредактирован) |
Palette |
Идентификатор цветовой палитры Windows |
Transparent |
Имеет значение True, если объект будет рисоваться в «прозрачном» режиме. Цвет, определяющий уровень прозрачности, задается в конкретном классе |
Таблица 2. Абстрактные методы класса ТGraphics
Метод |
Назначение |
procedure LoadFromFile(const FUeName: string); procedure SaveToFile(const FUeName: string); |
Загрузка и сохранение графической информации в файле |
procedure LoadFromClipboardFormat; procedure SaveToClipboardFormat; |
Загрузка и сохранение графической информации в буфере обмена Windows |
procedure LoadFromStream(Stream: TStream); procedure SaveToStream(Stream: TStream); |
Загрузка и сохранение графической информации в потоке |