Иллюстрированный самоучитель по Delphi 7 для профессионалов

Класс TPicture

Это класс-надстройка над TGraphic, точнее – над его потомками. Он имеет поле Graphic, которое может содержать объекты классов TBitmap, Ticon, TMetafile и TJPEGimage. Предназначение класса TPicture – управлять вызовами соответствующих методов, скрывая при этом хлопоты с определением типа графического объекта и детали его реализации.

Кроме того, на уровне TPicture определены возможности регистрации и использования других – определенных пользователем – классов графических объектов, порожденных от TGraphic. Доступ к графическому объекту осуществляется посредством свойства:

property Graphic: TGraphic;

Если графический объект имеет один из трех предопределенных типов, то к нему можно обратиться и как к одному из свойств:

property Bitmap: TBitmap; property Icon: Ticon;
property Metafile: TMetafile;

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

Imagel.Picture.LoadFromFile('myicon.ico'); //Создан и загружен объект
класса Ticon
MyBitmap: = Imagel.Picture.Bitmap; // прежний Ticon уничтожается

Если же вы описали свой класс (допустим, TGiFimage), то к его методам и свойствам следует обращаться так:

(Graphic as TGIFImage).MyProperty: = MyValue;

Перечислим остальные методы и свойства.

procedure LoadFromFile(const Filename: string);

Анализирует расширение имени файла FileName и если оно известно (зарегистрировано), то создается объект нужного класса и вызывается его метод LoadFromFile. В противном случае возникает исключительная ситуация EinvalidGraphic. Стандартными расширениями являются .ico, .wmf (.emf) и .bmp. Если подключить к приложению модуль JPEG.PAS, то можно будет загрузить и файлы с расширениями .jpg и .jpeg.

procedure SaveToFile(const Filename: string);

Сохраняет графику в файле, вызывая соответствующий метод объекта Graphic.

procedure LoadFromClipboardFormat(AFormat: Word; AData: THandle; APalette: HPALETTE);

Во многом аналогичен методу LoadFromFile. Если формат AFormat найден среди зарегистрированных, то AData и APalette передаются для загрузки методу соответствующего объекта. Изначально зарегистрированных форматов три: битовое изображение CF_BITMAP, метафайлы CF_METAFILEPICT и CF_ENHMETAFILE.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.