知识大全 Delphi实现在数据库中存取图像
Posted 知
篇首语:生活只有在平淡无味的人看来才是空虚而平淡无味的。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Delphi实现在数据库中存取图像相关的知识,希望对你有一定的参考价值。
Delphi实现在数据库中存取图像 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
本实例演示如何在数据库中存取图像文件
向窗体上添加一个TListBox组件 一个TImage组件和一个TTable组件 设计完成的主界面如图 所示
图 主界面
本系统中需要设计一个新的基于Paradox 的数据库Image db 图 为设计完成的Image db数据库
图 设计完成的数据库
为了方便测试程序 Image db数据库存储在实例程序所在的路径下
设置TTable组件的TableName属性为Image db Active属性为True
在程序运行初期 首先会判断Image db数据库中是否存在记录 如果没有记录存在 那么就执行以下代码向Image db数据库中添加 鸟 bmp 文件
procedure TForm FormCreate(Sender: TObject); var mem:TMemoryStream; begin if Table Eof and Table Bof then begin with Table do begin Insert; FieldByName( Name ) AsString:= 鸟 ; mem:=TMemoryStream Create(); mem LoadFromFile( 鸟 bmp ); TBlobField(FieldByName( Data )) LoadFromStream(mem); Post; end; end; end; 然后按照相同的方式顺序向Image db数据库中添加 样品 wav 叶子 wav 和 荷花 图像文件
最后通过下面的代码把Image db数据库中存储的文件名字添加到窗体的TListBox组件中
with Table do begin First; while not Eof do begin ListBox Items Add(FieldByName( Name ) AsString); Next; end; end; 在程序运行过程中 如果用户在窗体的TListBox组件中选择了图像文件 程序会通过TTable组件的First方法把数据表中的第 条记录作为当前记录 然后通过一个循环来遍历数据库中的记录 如果某条记录中Name字段的内容和用户的选择相同 那么就把该记录中Data字段中的图像信息读取出来 并且把图像显示在窗体上的TImage组件上 代码如下
procedure TForm ListBox Click(Sender: TObject); var mem:TStream; bmp:TBitmap; begin with Table do begin First; while not Eof do begin if FieldByName( Name ) AsString=ListBox Items[ListBox ItemIndex] then break; Next; end; bmp:=TBitmap Create; mem:=CreateBlobStream(FieldByName( Data ) bmRead); mem Position:= ; bmp LoadFromStream(mem); self Image Picture Assign(bmp); bmp Free; mem Free; end; end; 程序代码如下
unit Unit ; interface uses Windows Messages SysUtils Variants Classes Graphics Controls Forms Dialogs StdCtrls DB DBTables mmsystem ExtCtrls; type TForm = class(TForm) ListBox : TListBox; Table : TTable; Image : TImage; procedure FormCreate(Sender: TObject); procedure ListBox Click(Sender: TObject); private Private declarations public Public declarations end; var Form : TForm ; implementation $R * dfm procedure TForm FormCreate(Sender: TObject); var mem:TMemoryStream; begin if Table Eof and Table Bof then begin with Table do begin Insert; FieldByName( Name ) AsString:= 鸟 ; mem:=TMemoryStream Create(); mem LoadFromFile( 鸟 bmp ); TBlobField(FieldByName( Data )) LoadFromStream(mem); Post; Insert; FieldByName( Name ) AsString:= 样品 ; mem:=TMemoryStream Create(); mem LoadFromFile( 样品 bmp ); TBlobField(FieldByName( Data )) LoadFromStream(mem); Post; Insert; FieldByName( Name ) AsString:= 叶子 ; mem:=TMemoryStream Create(); mem LoadFromFile( 叶子 bmp ); TBlobField(FieldByName( Data )) LoadFromStream(mem); Post; Insert; FieldByName( Name ) AsString:= 荷花 ; mem:=TMemoryStream Create(); mem LoadFromFile( 荷花 bmp ); TBlobField(FieldByName( Data )) LoadFromStream(mem); Post; mem Free; end; end; with Table do begin First; while not Eof do begin ListBox Items Add(FieldByName( Name ) AsString); Next; end; end; end; procedure TForm ListBox Click(Sender: TObject); var mem:TStream; bmp:TBitmap; begin with Table do begin First; while not Eof do begin if FieldByName( Name ) AsString=ListBox Items[ListBox ItemIndex] then break; Next; end; bmp:=TBitmap Create; mem:=CreateBlobStream(FieldByName( Data ) bmRead); mem Position:= ; bmp LoadFromStream(mem); self Image Picture Assign(bmp); bmp Free; mem Free; end; end; end 保存文件 然后按F 键运行程序 程序运行的初始画面如图 所示
在TListBox组件中选中一项后 就会显示相对应的图像文件 如图 所示
图 程序运行的初始画面
cha138/Article/program/Delphi/201311/8527相关参考
知识大全 在DELPHI程序中使用ADO对象存取ODBC数据库
在DELPHI程序中使用ADO对象存取ODBC数据库 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 DELPHI存取JPEG文件到SQL Server数据库
DELPHI存取JPEG文件到SQLServer数据库 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
为了方便编程Delphi在很多需要与文件打交道的组件类中都定义了直接文件存取方法使用这些方法可以非常简单地将组件中处理的数据保存到文件中或从文件中读取所需的数据到组件中LoadFromFile和S
知识大全 在Delphi中简单的存取JPEG文件到SQLServer
在Delphi中简单的存取JPEG文件到SQLServer 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
Delphi中保存图像列表 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 最近在做项目时遇到将图
用Delphi实现图像放大镜 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在一些常用的看图软件中都
Delphi中对Oracle存取RTF文档 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 关系数
DELPHI基础教程:Delphi图形图像编程(一)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
DELPHI基础教程:Delphi图形图像编程(一)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
DELPHI基础教程:Delphi图形图像编程(一)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一