|
- Почему программеры, сисопы и прочий
компьютерный люд, всё время пьют пиво или ещё чего
покрепче? - А вы пробовали смотреть на работу чайника за
компьютером на трезвую голову? |
Извлечение изображения из BLOB-поля таблицы dBASE или Paradox --
без первой записи изображения в файл -- простейший процесс
использования метода Assign для сохранения содержимого BLOB-поля в
объекте, имеющим тип TBitmap. Отдельный объект TBitmap или свойство
Bitmap объекта Picture, в свою очередь являющегося свойством
компонента TIMage, могут служить примером совместимой цели для
данной операции.
Вот пример кода, демонстрирующего использование метода Assign для
копирования изображения из BLOB-поля в компонент TImage.
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Picture.Bitmap.Assign(Table1Bitmap);
end;
|
В данном примере, объект Table1Bitmap типа TBLOBField - BLOB-поле
таблицы dBASE. Данный TBLOBField-объекты был создан с помощью
редактора полей (Fields Editor). Если редактор полей для создания
TFields для полей таблицы не используется, получить доступ к полям
можно с помощью метода FieldByName или свойства Fields, оба они
являются членами компонентов TTable или TQuery. В случае ссылки на
BLOB-поле таблицы с помощью одного из приведенных членов, перед
использованием метода Assign указатель на поле должен быть прежде
приведен к типу объекта TBLOBField. Для примера:
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Picture.Bitmap.Assign(TBLOBField(Table1.Fields[1]));
end;
|
Изображение, хранящееся в BLOB-поле, может быть скопировано
непосредственно в отдельный TBitmap объект. Ниже приведен пример,
демонстрирующий создание объекта TBitmap и сохранения в нем
изображения из BLOB-поля.
procedure TForm1.Button2Click(Sender: TObject);
var
B: TBitmap;
begin
B := TBitmap.Create;
try
B.Assign(Table1Bitmap);
Image1.Picture.Bitmap.Assign(B);
finally
B.Free;
end;
end;
|
|