Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Работа с графикой.doc
Скачиваний:
6
Добавлен:
04.12.2018
Размер:
305.66 Кб
Скачать

Работа с графикой Понятие холста

Вся технология вывода графической информации на экран основывается на понятии холста (класс 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);

Загрузка и сохранение графической информации в потоке