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 |