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