关于透明的GIF存放ACCESS数据库显示功能,delphi。

来源:转载

最近在弄GIF存入ACCESS数据库上,在初期时间并不了解,直接在access上添加了对象,以至于在access里查看的是包的类型,再进行读取报错。在各网站搜索后,发现问题还是不能解决,本人的ACCESS是2003 可能新的版本没这个问题,希望知道的热心观众告诉小弟一声,谢谢!

一下是本人的笨方法:既然不能先手动添加图片,那么就写多个程序,把图片以流(二进制的形式)写入数据库,在以流读取。这么就能绕个弯解决问题。

本人测试的数据表如下

表名:表1

列: 编号, XS(图片存放列)

delphi7 的所写代码如下,(用到的控件:TGifimage 显示GIF图片的控件RxGIF 貌似用image控件不能显示透明效果,希望热心的观众指点下。)

存放数据库代码:

 1 procedure TForm1.Button3Click(Sender: TObject);
2  var
3 gif: TGIFImage;
4 Ms: TMemoryStream;
5  begin
6
7 if OpenDialog1.Execute then
8 begin
9 gif := TGIFImage.Create;
10 with gif do
11 begin
12 GifAnimator1.Image.LoadFromFile(OpenDialog1.FileName);//RXGif控件
13 Assign(GifAnimator1.Image);
14 Ms := TMemoryStream.Create;
15 SaveToStream(Ms);
16 Ms.Position := 0;
17 adoTable1.append;
18 TBlobField(adoTable1.FieldbyName( 'xs')).LoadFromStream(MS);
19 adoTable1.Post;
20 end;
21 end;
22
23  end;

读取数据库

 1 procedure TForm1.Button4Click(Sender: TObject);
2  var
3 gif: TGIFImage;
4 Ms: TMemoryStream;
5  begin
6 gif := TGIFImage.Create;
7 Ms := TMemoryStream.Create;
8
9 TBlobField(ADOTable1.FieldByName('xs')).SaveToStream(ms);
10 Ms.Position := 0;
11 gif.LoadFromStream(ms);
12 GifAnimator2.Image.Assign(gif);//显示GIF控件,在盒子都有得下载。
13 end;

功能很简单,代码就没加什么注释了。本人刚刚接触delphi不久,希望能找到志同道合的人一起学习一起进步,也希望有师傅收留下。


分享给朋友:
您可能感兴趣的文章:
随机阅读: