Отображение картинки в DBImage

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Elena
новенький
Сообщения: 29
Зарегистрирован: 02.05.2012 20:35:37

Отображение картинки в DBImage

Сообщение Elena »

Всем, привет!)
Очень нужна помощь!

Есть база в Access.
Необходимо вывести изображение в DBImage. Никак не получается.
Обыскала весь форум, ничего не получается.

Код: Выделить всё

Var
 b:TStream;

Begin
b:=SQLQuery1.CreateBlobStream(SQLQuery1.FieldByName('FOTO'), bmRead);
    DBImage1.Picture.LoadFromStream(b);
    b.Free;
End;


Это последнее что я пробовала.
не понимает bmRead. Пишет ошибку.

Подскажите, пожалуйста, в чем дело!
Аватара пользователя
whs
новенький
Сообщения: 28
Зарегистрирован: 03.04.2010 18:07:44

Сообщение whs »

Может я ошибаюсь но здесь можно обойтись и без потока и BmRead.
Elena
новенький
Сообщения: 29
Зарегистрирован: 02.05.2012 20:35:37

Сообщение Elena »

Я не подскажешь как? я пробовала соединить просто как в Делфи DBImage1 с DataSourse.

Код: Выделить всё

DBImage1.DataSourse:=DataSourse1;
DBImage1.DataField:='FOTO';


В этом случае пишет ошибку: вызван класс исключений EReadError.
iskander
энтузиаст
Сообщения: 630
Зарегистрирован: 08.01.2012 18:43:34

Сообщение iskander »

Что-бы Lazarus не ругался на bmRead в Uses должен быть модуль Db.
DBImage сохраняет изображение вместе с расширением.
Соответственно при загрузке пытается сначала прочитать расширение,
что-бы по нему определить формат изоблажения.
Если известен формат (допустим JPEG), то возможно сработает

Код: Выделить всё

DBImage1.Picture.Jpeg.LoadFromStream(b)
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

Кстати, при использовании LoadFromStream DBImage не нужен - можно обойтись Image.
Elena
новенький
Сообщения: 29
Зарегистрирован: 02.05.2012 20:35:37

Сообщение Elena »

Большое спасибо!))) Добавила Db и заработало!))
Ответить