16.4.5. Классы TGraphic и TPicture

Важное место в графическом инструментарии Delphi занимают классы TGraphic и TPicture.

TGraphic - это абстрактный класс, инкапсулирующий общие свойства и методы трех своих потомков: пиктограммы (TIcon), метафайла (TMetafile) и растрового изображения (TBitmap). Общей особенностью потомков TGraphic является то, что обычно они сохраняются в файлах определенного формата. Пиктограммы представляют собой небольшие растровые изображения, снабженные специальными средствами, регулирующими их прозрачность. Для файлов пиктограмм обычно используется расширение ico. Метафайл - это изображение, построенное на графическом устройстве с помощью специальных команд, которые сохраняются в файле с расширением wmf или emf. Растровые изображения - это произвольные графические изображения в файлах со стандартным расширением bmp.

Свойства класса TGraphic:

property Empty: Boolean; | Содержит True, если с объектом не связано графическое изображение
property Height: Integer; | Содержит высоту изображения в пикселях
property Modified: Boolean; | Содержит True, если графический объект изменялся
property Palette: HPALETTE; | Содержит цветовую палитру графического объекта
property PaletteModified: Boolean; | Содержит True, если менялась цветовая палитра графического объекта
property Transparent: Boolean; | Содержит True, если объект прозрачен для фона, на котором он изображен
property Width: Integer; | Содержит ширину изображения в пикселях
Методы Класса TGraphic:
procedure LoadFromClipooardFormat (AFormat: Word;AData: THandle; APalette:HPALETTE) ; | Ищет в буфере межпрограммного обмена Clipboard зарегистрированный формат AFormat и, если формат найден, загружает из буфера изображение AData и его палитру Apalette
procedure LoadFromrile(const FileName:String) ; | Загружает изображение из файла FileName
procedure LoadFromStream(Stream: TStream); | Загружает изображение из потока данных Stream
procedure SaveToClipboardFormat (var AFormat: Word;var AData: THandle; varAPalette: HPALETTE); | Помещает графическое изображение Adata и его цветовую палитру APalette в буфер межпрограммного обмена в формате Af ormat
procedure SaveToFile(constFileName: Strings; | Сохраняет изображение в файле FileName
procedure SavePoStream(Stream: TStream); | Сохраняет изображение в потоке Stream

Полнофункциональный класс TPicture инкапсулирует в себе все необходимое для работы с готовыми графическими изображениями - пиктограммой, растром или метафайлом. Его свойство Graphic может содержать объект любого из этих типов, обеспечивая нужный полиморфизм методов класса.

Свойства класса TPicture:

property Bitmap: TBitmap; | Интерпретирует графический объект как растровое изображение
property Graphic: TGraphic; | Содержит графический объект
property Height: Integer; | Содержит высоту изображения в пикселях
property Icon: TIcon; | Интерпретирует графический объект как пиктограмму
property Metafile: TMetafile; | Интерпретирует графический объект как метафайл
property width: Integer; | Содержит ширину изображения в пикселях

Методы класса TPicture:

procedure Assign(Source: TPersistent) ; | Связывает собственный графический объект Graphic с объектом Source
procedure LoadFromClipboardFormat (AFormat: Word;AData: THandle; APalette:HPALETTE) ; | Ищет в буфере межпрограммного обмена Clipboard зарегистрированный формат AFormat и, если формат найден, загружает из буфера изображение AData и его палитру APalette
procedure LoadFromFile(const FileName:String); | Загружает изображение из файла FileName
class procedure Register; ClipboardFormat(AFormat: Word; AGraphicClass: TGraphicClass) ; | Используется для регистрации в Clipboard нового формата изображения
class procedure Register; FileFormat (const AExtension, ADescription: String; AGraphicClass: Tgraphic Class) ; | Используется для регистрации нового файлового формата
class procedure RegisterFileFormatRes(const AExtension: String; ADescriptionResID: Integer; Agraphic Class: TGraphicClass); | Используется для регистрации нового формата ресурсного файла
procedure SaveToClipboardFormat (var AFormat: Word; var AData: THandle; varAPalette: HPALETTE); | Помещает графическое изображение AData и его цветовую палитру APalette в буфер межпрограммного обмена в формате AFormat
procedure SaveToFile(const FileName: Strings; | Сохраняет изображение в файле FileName
class function SupportsClipboardFormat(AFormat: Word): Boolean; | Возвращает True, если формат Aformat зарегистрирован в буфере межпрограммного обмена Clipboard
class procedure UnregisterGraphicClass(AClass:TGraphicClass); | Делает недоступными любые графические объекты класса Aclass