DBGrid и картинка в поле

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

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

Ответить
alexkam
постоялец
Сообщения: 152
Зарегистрирован: 07.09.2009 20:03:59

DBGrid и картинка в поле

Сообщение alexkam »

Вопрос простой? Как в DBGrid вывести картинку поле в ДБ имеет BLOB тип.
Используя
img := TBitmap.Create;
img.Assign(Field);
(где Field - BLOB поле)
возникает ошибка.
v-t-l
энтузиаст
Сообщения: 745
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

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

alexkam писал(а):

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

img.Assign(Field);
- несовместимость типов TBitmap и TField.
Должно быть что-то вроде:

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

var
  img: TBitmap;
  stm: TStream;
begin
  stm := Field.DataSet.CreateBlobStream(Field, bmRead);
  img := TBitmap.Create;
  img.LoadFromStream(stm);
  // Здесь должен быть код прорисовки на грид...
  img.Free;
  stm.Free;
end;
alexkam
постоялец
Сообщения: 152
Зарегистрирован: 07.09.2009 20:03:59

Сообщение alexkam »

Возникает ошибка WRONG IMAGE FORMAT
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

alexkam писал(а):...WRONG IMAGE FORMAT

Ну тогда скажите, в каком формате у Вас картинки?
alexkam
постоялец
Сообщения: 152
Зарегистрирован: 07.09.2009 20:03:59

Сообщение alexkam »

bmp - формат

Добавлено спустя 4 минуты 9 секунд:
Пожалуйста, покажите кто-нибудь рабочий пример.
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Ну что-то типа такого:

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

img.Assign(TBLOBField(Таблица.FieldByName('имя_поля').Value));
alexkam
постоялец
Сообщения: 152
Зарегистрирован: 07.09.2009 20:03:59

Сообщение alexkam »

Ошибка: Cannot assign a TBlobField to TBitMap
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

alexkam
А попробуйте так:

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

img.Assign(TBitmap(TBLOBField(Таблица.FieldByName('имя_поля').Value)));
alexkam
постоялец
Сообщения: 152
Зарегистрирован: 07.09.2009 20:03:59

Сообщение alexkam »

Я перепробовал все варианты. Ничего не выходит. Нужен рабочий пример. Помогите...
svk12
постоялец
Сообщения: 411
Зарегистрирован: 09.06.2008 18:42:47

Сообщение svk12 »

А как насчёт TDBImage ?

Или как-то так:

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

img.Picture.Bitmap.Assign(TBitmap(TBLOBField(Таблица.FieldByName('имя_поля').Value)));
Ответить