在DBGRID中显示图片,显示成了 GRAPHIC是什么原因?

sixgj 2018-11-28 10:58:27
图片未显示,倒是显示了这个单词是不支持么?显示的是数据库中的图片。
...全文
260 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
doloopcn 2018-11-29
  • 打赏
  • 举报
回复
你得首先知道图片的类型才能够进行处理
sixgj 2018-11-29
  • 打赏
  • 举报
回复
这个对数据库中存储的图片类型有什么要求么?我怎么报错?
sixgj 2018-11-29
  • 打赏
  • 举报
回复
数据库中存储的,分不清是啥类型。数据库中存储的图片如果存入前是什么类型那存入数据库中就是什么类型么?
lyhoo163 2018-11-29
  • 打赏
  • 举报
回复
有个image字段,使用DBGrideh
doloopcn 2018-11-28
  • 打赏
  • 举报
回复
应该是没有找到合适的控件去显示你的图片

你应该手工在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;

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧