Кроме того, на уровне 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;

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

CJ procedure LoadFromFile (const Filename: string);

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

(emf) и bmp. Если подключить к приложению модуль JPEG.PAS, то можно будет загрузить и файлы с расширениями jpg и jpeg.

D procedure SaveToFile(const Filename: string);

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

□ procedure LoadFromClipboardFormat(AFormat : Word;
APata: THandle;
APalette: HPALETTE);

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

cfjmetafilepict И cf_enhmetafile.

□ procedure SaveToClipboardFormat (var AFormat: Word;
var AData: THandle;
var APalette: HPALETTE);

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

□ procedure Assign (Source: TPersistent);

Метод Assign переписан таким образом, чтобы присваиваемый объект мог принадлежать как классу TPicture, так и TGraphic или любого его потомка. Кроме того, он может быть равен nil - в этом случае поле Graphic очищается с удалением прежнего объекта.

□ class function SupportsClipboardFormat(AFormat : Word) : Boolean;

Метод класса возвращает значение True, если формат AFormat поддерживается классом TPicture (зарегистрирован в системе). Напомним, что методы класса можно вызывать через ссылку на класс без создания экземпляра объекта.

□ class procedure RegisterFileFormat (const ÄExtension, ÄDescription:

string;
AGraphicClass: TGraphicClass);
class procedure RegisterClipboardFormao (AFormat : Word;
AGraphicClass: TGraphicClass);

Предназначены для создателей новых графических классов. Они позволяют зарегистрировать формат файла и буфера обмена и связать их с созданным классом - потомком TGraphic, который умеет читать и записывать информацию в этом формате.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Август
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс