На этом шаге мы рассмотрим состав класса TGraphic.
TGraphic - это абстрактный класс, инкапсулирующий общие свойства и методы трех своих потомков:
Общей особенностью потомков TGraphic является то, что обычно они сохраняются в файлах определенного формата. Пиктограммы представляют собой небольшие растровые изображения, снабженные специальными средствами, регулирующими их прозрачность. Для файлов пиктограмм обычно используется расширение ico.
Метафайл - это изображение, построенное на графическом устройстве с помощью специальных команд, которые сохраняются в файле с расширением wmf или emf.
Растровые изображения - это произвольные графические изображения в файлах со стандартным расширением bmp.
Свойства этого класса приведены в таблице 1:
| Свойство | Описание | 
|---|---|
| property Empty: Boolean; | Содержит True, если с объектом не связано графическое изображение, то есть в объект не загружалось графическое изображение. | 
| property Height: Integer; | Содержит высоту изображения в пикселях. | 
| property Modified: Boolean; | Содержит True, если графический объект изменялся. Это свойство устанавливается в True внутри обработчика события OnChange. | 
| property Palette: HPALETTE; | Содержит цветовую палитру графического объекта. | 
| property PaletteModified: Boolean; | Содержит True, если менялась цветовая палитра графического объекта. | 
| property Transparent: Boolean; | Содержит True, если объект прозрачен для фона, на котором он изображен. | 
| property Width: Integer; | Содержит ширину изображения в пикселях. | 
Методы этого класса перечислены в таблице 2:
| Метод | Описание | 
|---|---|
| procedure LoadFromClipboardFormat (AFormat: Word; AData: THandle; APalette:HPALETTE); | Ищет в буфере обмена Clipboard зарегистрированный формат AFormat и, если формат найден, загружает из буфера изображение AData и его палитру APalette. | 
| procedure SaveToClipboardFormat (var AFormat: Word; var AData: THandle; var APalette: HPALETTE); | Помещает графическое изображение AData и его цветовую палитру APalette в буфер обмена в формате AFormat. | 
| procedure LoadFromFile (const FileName: String); | Загружает изображение из файла FileName. | 
| procedure SaveToFile (const FileName: String); | Сохраняет изображение в файле FileName. Этот и предыдущий методы создают соответствующий файловый поток и затем вызывают методы LoadFromStream / SaveToStream. | 
| procedure LoadFromStream (Stream: TStream); | Загружает изображение из потока данных Stream. | 
| procedure SaveToStream (Stream: TStream); | Сохраняет изображение в потоке Stream. | 
На следующем шаге мы рассмотрим дополнительные возможности по работе с графикой.