Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Изображения в DBGrid


Автор: k2s 26.2.2005, 01:55
Можно ли как-то сделать, что-бы графическое содержимое полей BLOB отображалось прямо в TDBGrid или TDBGridEh? Если можно, то как?

Автор: <Spawn> 26.2.2005, 03:27
Обрабатывай OnDrawColumnCell

Автор: k2s 26.2.2005, 19:42
А можно пример? А то я что-то не разобрался... smile

Автор: k2s 27.2.2005, 21:35
Всё, разобрался сам.
Код

procedure TMainForm.InDocsDBGridEhDrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumnEh;
 State: TGridDrawState);
var
bmp: TBitmap;
begin
if Column.Field is TBlobField then
 begin
  with InDocsDBGridEh.Canvas do
  begin
   FillRect(Rect);
   bmp := TBitmap.Create;
   bmp.Assign((IODocsDataModule.INDOCSIBTable.fieldbyname('IMAGE') as TBlobField));
   Draw(Rect.Left, Rect.Top, bmp);
  end;
 end;
end;


Но теперь появился другой вопрос - Можно ли сделать, что-бы если изображение больше ячейки, оно помещалось там целиком, а не только его левый верхний угол?

Автор: <Spawn> 28.2.2005, 05:44
Используй StretchDraw

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)