你应该手工在DBGrid的画布上画:
procedure DBGridDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
ms : TMemoryStream;
jpg : TJPEGImage;
begin
TDBGrid(Sender).Canvas.FillRect(Rect);
if Column.Field.FieldName = 'JPEGPhoto' then
begin
try
ms := TMemoryStream.Create;
TBlobField(Column.Field).SaveToStream(ms);
if ms<>nil then
begin
jpg := TJPEGImage.Create;
jpg.LoadFromStream(ms);
TDBGrid(Sender).Canvas.StretchDraw(Rect,jpg);
end;
finally
if jpg<>nil then
jpg.Free;
if ms<>nil then
ms.Free;
end;
end else
begin
// 其他操作
end;
end;