После небольшого раздумья я решил прислать своего потомка DBGrid, который позволяет выводить изображения, благо добавочного кодирования не так много.
Код компонента:
{ // DBPICGRD.PAS (C) // ВСЕ ПРАВА ЗАЩИЩЕНЫ. // // ОПИСАНИЕ: // Компонент DBGrid, способный отображать графику в ячейках. } unit DBPicGrd; interface uses DBGrids, DB, DBTables, Grids, WinTypes, Classes, Graphics; type TDBPicGrid = class(TDBGrid) protected procedure DrawDataCell(const Rect: TRect; Field: TField; State: TGridDrawState); override; public constructor Create(AOwner : TComponent); override; published property DefaultDrawing default False; end; procedure Register; implementation constructor TDBPicGrid.Create(AOwner : TComponent); begin inherited Create(AOwner); DefaultDrawing := False; end; procedure TDBPicGrid.DrawDataCell(const Rect: TRect; Field: TField; State: TGridDrawState); var bmp : TBitmap; begin with Canvas do begin FillRect(Rect); if Field is TGraphicField then try bmp := TBitmap.Create; bmp.Assign(Field); Draw(Rect.Left, Rect.Top, bmp); finally bmp.Free; end else TextOut(Rect.Left, Rect.Top, Field.Text); end; end; procedure Register; begin RegisterComponents('Custom', [TDBPicGrid]); end; end. |