求助一个delphi的问题

ckenji 2002-12-04 03:42:59
我用Access建立了一个表,在表中有一项是照片,如何在delphi的窗体中把Access表中的照片显示出来,照片的格式是bmp的。(我试过几种方法,可都不能显示,那位高手可以指点一下)
...全文
40 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ckenji 2002-12-05
  • 打赏
  • 举报
回复
谢谢几位高手的指点。
我的确是用的dbimage,但是图片就是显示不出来(别是信息都可以正常显示,比如在Access表中的姓名,性别等文字信息都可以显示,惟独照片的框是空的)我是用ADO中的adotable这个组件连接的Access的表,表中的照片是以位图bmp的格式存进去的。不知道究竟是那里出了问题?
feng234 2002-12-04
  • 打赏
  • 举报
回复
我也想知道这个问题!
ezlz 2002-12-04
  • 打赏
  • 举报
回复
在数据源的onchange事件中调用如下的showpicture过程。
参数说明:
img:你要显示图片的image。
adoq:数据集。
field:包含图片的字段。


附保存图片的过程,也许有用哦,嘻嘻。

procedure showpicture(img: Timage; ADOQ: TADOQuery; field: string);
var MS: Tmemorystream;
begin
if not ADOQ.FieldByName(field).isnull then
begin
MS := TMemoryStream.Create;
try
TBlobField(ADOQ.FieldByName(field)).SaveToStream(MS);
MS.Position := 0; //注意
try
img.Picture.Graphic.LoadFromStream(MS);
except
//如果格式无效,则显示默认图片
on EInvalidGraphic do
img.Picture.Graphic := fmain.Image4.Picture.Graphic;
end;
finally
MS.Free;
end;
end
else
begin
MS := TMemoryStream.Create;
try
fmain.Image4.Picture.Graphic.SaveToStream(MS);
MS.Position := 0; //注意
img.Picture.Graphic.LoadFromStream(MS);
finally
MS.Free;
end;
end;
end;

procedure savepicture(img: Timage; ADOQ: TADOQuery; field: string);
var photo: Tmemorystream;
begin
photo := Tmemorystream.create;
img.Picture.graphic.savetoStream(photo);
Tblobfield(ADOQ.FieldByName(field)).loadfromstream(photo);
photo.Clear;
end;

怎样?给分吧。:)
flyingkiller 2002-12-04
  • 打赏
  • 举报
回复
dbimage肯定是可以的,要么就是你存进去的格式不对。
laihecongxi 2002-12-04
  • 打赏
  • 举报
回复
dbimage ?不行

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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