Russian Belarusian English German Japanese Ukrainian

TPicture, TBitmap, Tlcon и TMetafile - хранения графических объектов

CuBook2.55

Для хранения графических объектов, содержащихся в битовых матрицах, пиктограммах и метафайлах, в C++Builder определены соответствующие классы TBitmap, Tlcon и TMetafile. Все они являются производными от абстрактного базового класса графических объектов TGraphic. Кроме того, определен класс, являющийся надстройкой над TBitmap, Tlcon и 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, Tlcon и 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

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