![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBGridEh и отображение содержимого BLOB поля [D7, XP]
ixen © (2011-05-13 10:52:00)Здравствуйте! СУБД Firebird. Отображение данных DBGridEh. Таблица с полем BLOB хранящая в себе изображения JPG. Отобразить эти изображения на форме через Image проблем не вызывало. Может ли DBGridEh без обработки OnDrawColumnCell отображать эти изображение в соответствующей колонке?
Плохиш (2011-05-20 11:31:00) [1]
> ixen (20.05.11 10:10) [6]
>
> Все таки я сделал отображение картинок в гриде, содержащиеся
> в BLOB поле.
Молодец.
PS. Сделай pic полем формы и объяви с типом Tjpegimage.
ixen (2011-05-20 10:10:00) [2]Все таки я сделал отображение картинок в гриде, содержащиеся в BLOB поле. При этом грид не тормозит как предполагалось, хотя фотографии грузил достаточно тяжелые с большим разрешением. Код оказался достаточно простым. Вот мое решение:
uses JPeg;
var pic:Tgraphic;
procedure TFfotos.FormCreate(Sender: TObject);
begin
pic:=Tjpegimage.Create;
TJPEGImage(pic).Scale:=jsEighth;// уменьшаем картинку в 8 раз
TJPEGImage(pic).Performance:=jpBestSpeed; // уменьшаем цветопередачу и увеличиваем скорость отрисовки
end;
procedure TFfotos.FormClose(Sender: TObject; var Action: TCloseAction);
begin
pic.Free;
end;
procedure TFfotos.fotos_grdDrawColumnCell(Sender: TObject;const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
var Field: TBlobField;
begin
field:=TDBGridEh(sender).DataSource.DataSet.FieldByName('foto') as TBlobField;
pic.Assign(Field);
TJPEGImage(Pic).DIBNeeded; // оптимизируем перед отрисовкой
TDBGridEh(sender).Canvas.Draw(Rect.Left,Rect.Top,pic); // рисуем в гриде
end;
Использовал DBGridEh, если включить поддержку изменения высоты строк, то вообще красота получается. Пользователь сам может выбрать высоту строки чтобы помещалась вся фотография.
Anatoly Podgoretsky (2011-05-13 14:26:00) [3]Ага размером 2584*1560, ну а вторую причину ты сам указал.
ixen (2011-05-13 11:32:00) [4]вобщем я передумал так делать... картинки весят много, и грид будет тормозить... сделаю по другом.. всем спасибо..
ixen (2011-05-13 11:30:00) [5]нет... это не то... изображения хранятся не в ImageList, а в поле таблицы... вот эти изображения и хотелось бы вывести в ячейку грида.
OW (2011-05-13 11:27:00) [6]или не понимаю чего хочешь :)
OW (2011-05-13 11:23:00) [7]Columns.ImageList