logo
Программирование в среде Delphy / Программирование в среде Delphi

21.2. Классы тGгарhic и тРicture

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

TGraphic – это абстрактный класс, инкапсулирующий общие свойства и методы трех своих потомков: значка (TIcon), метафайла (TmetaFile) и растрового изображения (ТBitMap). Общей особенностью потомков ТGraphic является то, что обычно они сохраняются в файлах определенного формата. Значки представляют собой небольшие растровые изображения, снабженные специальными средствами, регулирующими их прозрачность. Для файлов значков обычно используется расширение IСО. Метафайл – это изображение, построенное на графическом устройстве с помощью специальных команд, которые сохраняются в файле с расширением WMF или ЕМF. Растровые изображения – это произвольные графические изображения в файлах со стандартным расширением ВМР.

Свойства класса ТGraphic:

Ргоperty Еmpty: Воо1еаn; – cодержит Тгие, если с объектом не связано графическое изображение;.

Pгорerty Неight: Тnteger; – cодержит высоту изображения в пикселях;

Pгорегtу Моdefied: Воо1еаn; – cодержит Тгие, если графический объект изменялся;

Property Palette: HPALETTE; – cодержит цветовую палитру графического объекта.

Property PaletteModified: Boolean; – cодержит True, если менялась цветовая палитра графического объекта.

Property Transparent: Boolean; – cодержит True, если объект прозрачен для фона, на котором он изображен;

Property Width: Integer; – cодержит ширину изображения в пикселях.

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

Procedure LoadFromClipboardFormat (AFormat: Word; AData: THandle; Apalette: HPALETTE) ; – ищет в буфере межпрограммного обмена Clipboard зарегистрированный формат AFormat и, если формат найден, загружает, из буфера изображение AData и его палитру APalette;

Procedure LoadFromFile(const FileName: String) ; – загружает изображение из файла FileName;

Procedure LoadFromStream (Stream: TStream) ; – загружает изображение из потока данных Stream;

Procedure SaveToClipboardFormat (var AFormat: Word; var AData: THandle; var APalette: HPALETTE); – помещает графическое изображение AData и его цветовую палитру APalette в буфер межпрограммного обмена в формате Aformat;

Procedure SaveToFile(const FileName:String) ; – сохраняет изображение в файле FileName;

Procedure SaveToStream(Stream: TStream); – cохраняет изображение в потоке Stream.

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

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

Property Bitmap: ТBitmap; – интерпретирует графический объект как растровое изображение;

Property Graphic: TGraphic; – cодержит графический объект;

Property Height: Integer; – cодержит высоту изображения в пикселях;

Property Icon: TIcon; – интерпретирует графический объект как значок;

Property Metafile: TMetafile; – интерпретирует графический объект как метафайл;

Property Width: Integer; – содержит ширину изображения в пикселях.

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

Procedure Assign(Source: TPersistent) ; – копирует содержимое объекта Source в объект Graphic;

Procedure LoadFromClipboardFormat (AFormat: Word; AData: THandle; APalette: HPALETTE); – ищет в буфере межпрограммного обмена Clipboard зарегистрированный формат AFormat и, если формат найден, загружает из буфера изображение AData и его палитру Apalette;

Procedure LoadFromFile(const FileName: String) ; – загружает изображение из файла FileName;

class Procedure RegisterClipboardFormat(AFormat: Word; AGraphicClass: TGraphicClass) ; – используется для регистрации в Clipboard нового формата изображения;

class Procedure RegisterFileFormat (const AExtension, ADescription: String; AGraphicClass: TGraphicClass); – используется для регистрации нового файлового формата;

class Procedure RegisterFileFormatRes(const AExtension: String; ADescriptionResID: Integer; AGraphicClass: TGraphicClass); – используется для регистрации нового формата ресурсного файла;

Procedure SaveToClipboardFormat (var AFormat: Word; var AData: THandle; var APalette: HPALETTE) ; – помещает графическое изображение AData и его цветовую палитру APalette в буфер межпрограммного обмена в формате AFormat;

Procedure SaveToFile(const FileName: String) ; – сохраняет изображение в файле FileName;

class Function SupportsClipboardFormat(AFormat: Word): Boolean; – возвращает True, если формат AFormat зарегистрирован в буфере межпрограммного обмена Clipbord;

class Procedure UnregisterGraphicClass(AClass: TGraphicClass); – делает недоступными любые графические объекты класса AClass.