首页 Delphi数据库编程教程(五)

Delphi数据库编程教程(五)

举报
开通vip

Delphi数据库编程教程(五)Delphi数据库编程教程(五) 第二节 使用DBImage引出JPEG—错误的方式 DBImage—思路一(The DBImage - take one) 当试图使用Delphi做新的尝试时,我所做的第一件事是向Delphi的自带帮助寻求方法。这是帮助文档将回答:TDBImage(在组件面板的Data Controls页)表示数据库当前记录的一个BLOB字段的图形图像。使用TDBImage表示图形字段值。TDBImage允许表单显示数据库的图形数据。TDBImage仅仅比TImage组件多了一些数据可视属性...

Delphi数据库编程教程(五)
Delphi数据库编程教程(五) 第二节 使用DBImage引出JPEG—错误的方式 DBImage—思路一(The DBImage - take one) 当试图使用Delphi做新的尝试时,我所做的第一件事是向Delphi的自带帮助寻求方法。这是帮助文档将回答:TDBImage(在组件面板的Data Controls页) 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示数据库当前记录的一个BLOB字段的图形图像。使用TDBImage表示图形字段值。TDBImage允许表单显示数据库的图形数据。TDBImage仅仅比TImage组件多了一些数据可视属性。其中两个最重要的属性是:DataSource(数据源)和Field(字段)。DataSource(数据源)属性连接图形组件到数据库。在我们的表单上有一个名为DataSource1的DataSource 代表着一个数据集。Field(字段)属性指出拥有图像的字段(数据源)组件— (在表中)。 一切都清楚了,现在在表单上放置一个DBImage组件并默认名为DBImage1。为了真正的把DBImage与表的BLOB字段相连,我们仅需要做以下的配置(使用Object Inspector): DBImage1.DataSource = DataSource1 DBImage1.Field = Picture 为了显示存在Applications表的Picture字段的JPEG图像,这是必需的窍门。 为了验证这样的配置是否可以工作,我们所需做的唯一一件事是设置ADOTable1组件的Active(激活)属性为True即可。在 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 时我们就可在Object Inspector(对象检视器)中完成。一旦你这样做了,就会出现以下的对话框: 什么,为什么显示“位图图像无效”呢,我们有JPEG图片而不是BMP图片—问题就在这里吗,让我们再回头看看帮助。 通过在帮助中的一阵点击之后,得出结论:为了得到数据库里的JPG图片,我们得使用TJpegImage对象。为了显示图片,我们需要Image(图像)组件的简单、不可视版本。同时,我们需要用流(Stream)从BLOB对象中载出图片。帮助文档叙述:我们应使用TADOBlobStream来访问或改变ADO数据集中BLOB或memo(备注)字段的值。 第三节 用流引出JPEG—错误的方法 引出JPEG—思路二(Pulling the Jpeg - take two!) 既然我们不能使用DBImage做任何事—从表单中去掉它并放上一个普通的TImage组件(Additional页)命名为ADOImage。不幸的是,Image组件没有任何数据可视(data-aware)的属性,因此,需要一个单独的程序来显示它所表示的数据库表中的图片。完成这件事的最简单的方法是:在表单上放置一个Button(按钮),把所有的程序代码放在它的OnClick事件中,按钮的名称为:“btnShowImage”。 为了使用ADOBLOBStream,帮助文档建议创建一个TADOBlobStream实例,用“流”的方法从数据集中读取图形字段,然后释放BLOB流。在中间的某个地方,我们将需要用LoadFromStream方法从TADOBlobStream对象中载入JPEG图像。Image(图像)组件的Picture(图片)、Graphic(图形)属性将用于真正的存储和显示图片。 字段对象,它是什么, 这时,我假设只需要一点点关于字段对象的知识对于你掌握本章已绰绰有余了。在Delphi数据库的开发中,主要的对象之一是TField对象。字段组件是表示运行(或设计)时的数据集字段的非可视化对象。TADOTable(和其他 TDataSet子类)提供设计时对Fields Editor(字段编辑器)的访问方法。 Fields Editor使你能选择数据集中你所想包含的字段。更重要的是,它创建 了应用程序数据集中使用的字段组件的稳固的列表。为了调用Fields Editor,可以双击TADOTable组件。默认情况下,字段列表是空的。点击Add 按钮打开一个对话框,里面列出了Applications表的字段列表。缺省情况下, 所有字段都被选择,然后选择OK。 Delphi会按如下的方式给出字段的默认名称:Table(表)名+Field (字段)名。这意味着我们的图片字段名为:ADOTable1Picture。 TADOBlobStream的Create(创建)方法创建一个实例用于读或写一个指定的BLOB字段对象,在这里是ADOTable1Picture字段。 我们在btnShowImage按钮的OnClick事件中写入程序代码。该代码将从当前所选行的Picture字段中读取图片。源代码如下所示: uses jpeg; ... procedure TForm1.btnShowImageClick(Sender: TObject); var bS: TADOBlobStream; Pic : TJpegImage; begin bS := TADOBlobStream.Create (AdoTable1Picture, bmRead); try Pic:=TJpegImage.Create; try Pic.LoadFromStream(bS); ADOImage.Picture.Graphic:=Pic; finally Pic.Free; end; finally bS.Free end; end; OK,让我们运行这个 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 。当然,设置ADOTable1.Active属性为True。表单显示后,点击按钮,将出现下面的显示: 呃, 怎么哪,代码百分之百的正确但为什么不显示图像呢~记住“永不放弃,永不投降”~让我们深入到字节水平看看到底发生了什么~
本文档为【Delphi数据库编程教程(五)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_496339
暂无简介~
格式:doc
大小:34KB
软件:Word
页数:4
分类:生活休闲
上传时间:2017-10-17
浏览量:49