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

sixgj 2018-11-28 10:58:27
图片未显示,倒是显示了这个单词是不支持么?显示的是数据库中的图片。
...全文
122 点赞 收藏 5
写回复
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;
回复
相关推荐
发帖
数据库相关
创建于2007-08-02

2451

社区成员

Delphi 数据库相关
申请成为版主
帖子事件
创建了帖子
2018-11-28 10:58
社区公告
暂无公告