Важное место в графическом инструментарии 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 в буфер межпрограммного обмена в формате Aformat |
| 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 |






