Sep 02

Загружаем нужные изображения в поля Blob

Доступны несколько вариантов загрузки самих изображения в BLOB таблицы под названием dBASE либо Paradox...

3 наиболее простых варианта состоят из:

1) именно копирование всех данных из самого буфера обмена под названием Windows исключительно в компонент по имени TDBImage, который связан напрямую с данным BLOB-полем;

2) представляет из себя использование именно метода под названием LoadFromFile компонента по имени TBLOBField;

3) представляет из себя использование метода по имени Assign с целью копирования самого объекта TBitmap- типа именно в значение представленного свойства по имени Picture компонента под названием TBDBImage.

Желаете узнать больше о народной медицине? На веб-сайте  naturmedicina.com.ua, Вы можете прочитать о самых новых методиках народной медицины, которые с успехом используются на практике, узнать, что собой представляет лечебный массаж, а также ознакомится с наиболее прогрессивными методами лечения заболеваний позвоночника.

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

В данном случае компонент под названием TDBImage удет использоватся именно в виде некоего интерфейса только между нашим BLOB-полем таблицы и самим изображением, которое хранится в данном буфере обмена.

Вариант по имени PasteFromClipboard компонента под названием TDBImage занимается именно тем, что данное изображение копирует из нашего буфера обмена именно в TDBImage. В случае сохранении этой записи изображение будет записано в BLOB.

Из-за того, что буфер обмена самой Windows содержать в себе может данные кардинально разных форматов, то обязательно перед тем как вызывать метод по имени CopyFromClipboard делать проверку всего формата, в котором хранятся данные.

Чтобы сделать это, делаем обьект по имени TClipboard и пробуем метод его HasFormat, который дает возможность хорошо определить сам формат данных.

Помните, что с целью создания объекта под названием TClipboard надоюно модуль добавить под названием Clipbrd именно в секцию uses того модуля, в котором делается сам экземпляр необходимого объекта.

Предоставляем пример кода:

procedure TForm1.Button1Click(Sender: TObject);

var

C: TClipboard;

begin

C := TClipboard.Create;

try

if Clipboard.HasFormat(CF_BITMAP) then

DBImage1.PasteFromClipboard

else

ShowMessage('Учтите тот факт, что буфер обмена изображения не содержит!');

finally

C.Free;

end;

end;

Другой вариант заполнения нужного BLOB-поля состоит именно в загрузке надобного изображения напрямую из файла в самом BLOB-поле. Этот метод действене как при деланьи приложения, так и во время использовании его.

Данный метод использует способ по имени LoadFromFile компонента под названием TBLOBField, применяющегося в Дельфи с целью работы с самими dBASE-таблицами и также двойственными полями Windows либо же таблицами Paradox, а также графическими полями Windows; во всех вариантах без исключения с помощью представленного метода есть хорошая возможность загрузить само изображение и еще его сберечь в необходимой таблице.

Методу же по имени LoadFromFile компонента под названием TBLOBField надобен один только параметр типа самого String: имя файла загружаемого с нужным изображением. Значение именно этого параметра быть может получено только при выборе самого файла юзером с помощью TOpenDialog и свойства его под названием FileName.

В качестве примера покажем код:

procedure TForm1.Button2Clicck(Sender: TObject);

begin

Table1Bitmap.LoadFromFile(

'c:\delphi\images\splash\16color\construc.bmp');

end;

Третий вариант базируется на работе с методом по имени Assign. Объект надобный именно типа TBitmap быть может как самим свойством Bitmap нашего свойства-объекта Picture компонента под названием TImage, так и автономным уже объектом именно TBitmap.

Аналогично методу, копирующем все нужные данные из самого буфера обмена только в компонент TDBImage, все данные самого изображения компонента по имени TDBImage находятся только в BLOB-поле и только после правильного сохранения данной записи.

А вот пример кода, который использует именно метод Assign:

procedure TForm1.Button3Click(Sender: TObject);

var

B: TBitmap;

begin

B := TBitmap.Create;

try

B.LoadFromFile('c:\delphi\images\splashh\16color\athena.bmp');

DBImage1.Picture.Assign(B);

finally

B.Free;

end;

end;


Поделитесь вашими мыслями

Поддерживаемые теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>