Russian Belarusian English German Japanese Ukrainian

Для хранения графических объектов, содержащихся в битовых матрицах, пиктограммах и метафайлах, в C++ Builder определены соответствующие классы TBitmap, TIcon и TMetafile. Все они являются производными от абстрактного базового класса графических объектов TGraphic. Кроме того, определен класс, являющийся надстройкой над TBitmap, TIcon и TMetafile и способный хранить любой из этих объектов. TPicture имеет свойство Graphic, которое может содержать и битовые матрицы, и пиктограммы, и метафайлы. Более того, он может содержать и объекты определенных пользователем графических классов, производных от TGraphic. Для доступа к графическому объекту можно использовать свойство TPicture->Graphic, но если тип графического объекта известен, то можно непосредственно обращаться к свойствам TPicture->Bitmap, TPicture->Icon или TPicture->Metafile.

Для всех рассмотренных классов определены методы загрузки и сохранения в файл:

void __fastcall LoadFromFile(const System::AnsiString Filename);
void __fastcall SaveToFile(const System::AnsiString Filename);

При этом для классов TBitmap, TIcon и TMetafile формат файла должен соответствовать классу объекта. Объект класса TPicture может оперировать с любым форматом.

Для всех рассмотренных классов определены методы присваивания значений объектов:

void __fastcall Assign(TPersistent* Source);

Однако для классов TBitmap, TIcon и TMetafile присваивать можно только значения однородных объектов: соответственно битовых матриц, пиктограмм, метафайлов. При попытке присвоить значения разнородных объектов генерируется исключение. Класс TPicture универсальный, ему можно присваивать значения объектов любых из остальных трех классов. А значение TPicture можно присваивать только тому объекту, тип которого совпадает с типом объекта, хранящегося в нем.

Если надо переписать в Bitmap отредактированное пользователем в Image1 изображение, это можно сделать следующим оператором (процедура MSaveClick):

Bitmap->Assign(Image1->Picture);

Если же надо восстановить в Image1 прежнее изображение, испорченное по каким-то причинам, то это можно сделать следующим оператором (процедура MRestoreClick):

Image1->Picture->Assign(Bitmap);

Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий


Поиск по сайту