Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2010, 09:52   #1
new player
Форумчанин
 
Регистрация: 30.08.2010
Сообщений: 153
Вопрос DBGrid + изображение

Приветствую

Вопрос такой: как вставить в DBGrid изображение. В моем случае, если в ячейке указаны 0 или 1 грузятся соответствующие картинки. Также картинки надо закинуть в шапку таблицы.

Использую: ADOConnection, ADOQuery, DataSource.
new player вне форума Ответить с цитированием
Старый 27.09.2010, 10:16   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
По умолчанию

Делайте проверку запросом из БД на то какое значение, 0 или 1, и уже потом запросом же и грузите картинку. Только картинка будет грузится не в DBGrid, т.к. он не хранит данные, а всего лишь отображает. Поэтому, лучше всего использовать либо StringGrid, либо DrawGrid.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 27.09.2010, 10:29   #3
new player
Форумчанин
 
Регистрация: 30.08.2010
Сообщений: 153
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Делайте проверку запросом из БД на то какое значение, 0 или 1, и уже потом запросом же и грузите картинку.
Если вас не затруднит, можно этот момент поподробнее и с примером.

Цитата:
Сообщение от artemavd Посмотреть сообщение
Только картинка будет грузится не в DBGrid, т.к. он не хранит данные, а всего лишь отображает. Поэтому, лучше всего использовать либо StringGrid, либо DrawGrid.
Наверное, я неправильно выразился. Грузится / отображается мне не суть важно, главное, чтобы в ячейке была картинка и при скроле корректно отображалась.

А как правильно использовать StringGrid, либо DrawGrid? Ведь в DBGrid все достаточно просто: выбераю DataSoure, а в ADOQuery пишу, например,

Код:
ADOQuery.SQL.Add('select * from V_ADM_USERS order by USERNAME');
ADOQuery.Active := false;
ADOQuery.Active := true;
У StringGrid и DrawGrid такого свойства не нашел. Как с ними?
new player вне форума Ответить с цитированием
Старый 27.09.2010, 10:48   #4
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
По умолчанию

Цитата:
Если вас не затруднит, можно этот момент поподробнее и с примером.
Я не знаю названия полей в вашей БД. Приведите скрин заполненной таблицы, тогда попробую помочь.
Цитата:
А как правильно использовать StringGrid, либо DrawGrid?
На этом сайте есть целый раздел про это.
Цитата:
Ведь в DBGrid все достаточно просто: выбераю DataSoure, а в ADOQuery пишу, например,
Можно еще проще: просто настроить DBImage на поле с картинкой и все.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 27.09.2010, 11:11   #5
new player
Форумчанин
 
Регистрация: 30.08.2010
Сообщений: 153
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Я не знаю названия полей в вашей БД. Приведите скрин заполненной таблицы, тогда попробую помочь.
У меня поля USERNAME, FULL_NAME, POSITION, EXP_DATE, LOCKED

Запрос такой

Код:
ADOQuery.SQL.Add('select * from V_ADM_USERS order by USERNAME');
ADOQuery.Active := false;
ADOQuery.Active := true;
DBGrid заполняется автоматом.

0 и 1 в LOCKED. Вместо них надо картинки.

Цитата:
Сообщение от artemavd Посмотреть сообщение
На этом сайте есть целый раздел про это.
Спасибо, поищу, почитаю.

Цитата:
Сообщение от artemavd Посмотреть сообщение
Можно еще проще: просто настроить DBImage на поле с картинкой и все.
Страшно спрашивать, но все же спрошу: как?
new player вне форума Ответить с цитированием
Старый 27.09.2010, 11:51   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
но все же спрошу: как?
Кидаешь на форму компонент DBImage. В его поле DataSource выбираешь DataSource, который связан с набором данных, а в поле DataField указываешь поле с картинками
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.09.2010, 12:18   #7
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

DBGridEh может показывать картинки прямо в сетке.
Если же нужно показать иконки, то там в свойствах Column-a можно прикрепить
ImageList, т.е. из ImageList будет выводиться иконка с индексом, равным значению поля.
И писать ничего не нужно.
_SERGEYX_ вне форума Ответить с цитированием
Старый 27.09.2010, 12:32   #8
new player
Форумчанин
 
Регистрация: 30.08.2010
Сообщений: 153
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Кидаешь на форму компонент DBImage. В его поле DataSource выбираешь DataSource, который связан с набором данных, а в поле DataField указываешь поле с картинками
Сделал. Закинул. Связал с DataSource. В formcreate написал:

Код:
DBImage.DataField := 'LOCKED';
DBImage.Picture.LoadFromFile('images\lock1.bmp');
В столбце LOCKED картинок не появилось. Без изменений: 1 и 0. Сама картинка в DBImage появилась, но при переходе на DBGrid в ней появился текст LOCKED.
new player вне форума Ответить с цитированием
Старый 27.09.2010, 12:34   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
DBImage.Picture.LoadFromFile('image s\lock1.bmp');
Зачем это написал? Тебе нужно отображать из базы или писать в базу картинки?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.09.2010, 12:40   #10
new player
Форумчанин
 
Регистрация: 30.08.2010
Сообщений: 153
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
DBGridEh может показывать картинки прямо в сетке.
Если же нужно показать иконки, то там в свойствах Column-a можно прикрепить
ImageList, т.е. из ImageList будет выводиться иконка с индексом, равным значению поля.
И писать ничего не нужно.
Вот это было бы полезно. А где этот DBGridEh взять? Он в стандартных или устанавливается отдельно (если несложно подарите линк ).
new player вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изображение _-Re@l-_ Общие вопросы Delphi 7 09.06.2010 09:23
Перемещение даннах из dbgrid в dbgrid Hobbit_88 БД в Delphi 7 10.06.2009 13:33
перенос данных из DBGrid в DBGrid KingSize БД в Delphi 17 24.04.2009 09:30
Изображение Terran Работа с сетью в Delphi 2 08.02.2008 22:28
Изображение Artem Мультимедиа в Delphi 10 13.07.2007 13:27