使用ADO ACCESS ImageEn 动态,显示图片,导入图片,导出图片,删除图片
2007-10-15 22:06
603 查看
//使用ADO ACCESS ImageEn来处理图片字段希望大家不要少走冤路了!
//含显示,导入,导出,删除图片
#include <vcl.h >
#pragma hdrstop
#include "ImageEnDbViewUnit.h"
//-------------------------------------------------------
#pragma package(smart_init)
#pragma link "dbimageen"
#pragma link "ieopensavedlg"
#pragma link "ieview"
#pragma link "imageen"
#pragma link "imageenview"
#pragma link "imageenio"
#pragma resource "*.dfm"
TForm1 *Form1;
int i=0;
//----------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//所使用控件ADOConnected,ADOTabel,DataSource,Label1
//这三个由ImageEn包含的,ImageEnDBView1OpenImageEnDialog,SaveImageEnDialog1
//数据库用ACCESS,其中一个图片字段要先使用ADOTable1- >Active =true;一下,设计完后取消
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ADOTable1- >Active =true;
}
//导入图片到当前字段,并保存(支持JPG,BMP等多种格式导入)------
void __fastcall TForm1::ImportBtnClick(TObject *Sender)
{
if (OpenImageEnDialog1- >Execute())
{ImageEnDBView1- >IO- >LoadFromFile(OpenImageEnDialog1- >FileName);
ImageEn1- >IO- >LoadFromFile( OpenImageEnDialog1- >FileName);
// ImageEnDBView1- >Update();
ADOTable1- >Edit();
TMemoryStream *dataStream = new TMemoryStream();
ImageEnDBView1- >IO- >SaveToStreamJpeg(dataStream);
((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >LoadFromStream(dataStream);
ADOTable1- >Post();
delete dataStream; }
}
//一个记录八个图片字段,一个一个显示------------------------
void __fastcall TForm1::NextBtnClick(TObject *Sender)
{ if (i==8) i=0;
i++;
ImageEnDBView1- >AutoDisplay = true;
ImageEnDBView1- >AutoStretch = true;
//ImageEnDBView1- >DataSource = DataSource1;
ImageEnDBView1- >DataField = ((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >FieldName;
TMemoryStream *dataStream = new TMemoryStream();
((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >SaveToStream(dataStream);
if (dataStream- >Size <100) {ImageEnDBView1- >Clear();
ImageEnDBView1- >AutoStretch = false;
ImageEnDBView1- >Bitmap- >Canvas- >Font- >Size = 40;
ImageEnDBView1- >Bitmap- >Canvas- >Font- >Color = clRed;
ImageEnDBView1- >Bitmap- >Canvas- >TextOutA(0,20," 无 图 片 ");
}
//ImageEnDBView1- >LoadPicture();
ImageEnDBView1- >Update();//更新显示图片
Label1- >Caption = ((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >FieldName+" size: "+IntToStr(dataStream- >Size);
delete dataStream;
}
//导出图片,支持JPG,BMP等多种格式导出-----------------------------------------------
void __fastcall TForm1::OutputBtnClick(TObject *Sender)
{
if (SaveImageEnDialog1- >Execute())
ImageEnDBView1- >IO- >SaveToFile(SaveImageEnDialog1- >FileName);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DeleteBtnClick(TObject *Sender)//删除字段的图片
{ ADOTable1- >Edit();
ImageEnDBView1- >Clear();
((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >Clear();
ADOTable1- >Post();
}
//含显示,导入,导出,删除图片
#include <vcl.h >
#pragma hdrstop
#include "ImageEnDbViewUnit.h"
//-------------------------------------------------------
#pragma package(smart_init)
#pragma link "dbimageen"
#pragma link "ieopensavedlg"
#pragma link "ieview"
#pragma link "imageen"
#pragma link "imageenview"
#pragma link "imageenio"
#pragma resource "*.dfm"
TForm1 *Form1;
int i=0;
//----------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//所使用控件ADOConnected,ADOTabel,DataSource,Label1
//这三个由ImageEn包含的,ImageEnDBView1OpenImageEnDialog,SaveImageEnDialog1
//数据库用ACCESS,其中一个图片字段要先使用ADOTable1- >Active =true;一下,设计完后取消
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ADOTable1- >Active =true;
}
//导入图片到当前字段,并保存(支持JPG,BMP等多种格式导入)------
void __fastcall TForm1::ImportBtnClick(TObject *Sender)
{
if (OpenImageEnDialog1- >Execute())
{ImageEnDBView1- >IO- >LoadFromFile(OpenImageEnDialog1- >FileName);
ImageEn1- >IO- >LoadFromFile( OpenImageEnDialog1- >FileName);
// ImageEnDBView1- >Update();
ADOTable1- >Edit();
TMemoryStream *dataStream = new TMemoryStream();
ImageEnDBView1- >IO- >SaveToStreamJpeg(dataStream);
((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >LoadFromStream(dataStream);
ADOTable1- >Post();
delete dataStream; }
}
//一个记录八个图片字段,一个一个显示------------------------
void __fastcall TForm1::NextBtnClick(TObject *Sender)
{ if (i==8) i=0;
i++;
ImageEnDBView1- >AutoDisplay = true;
ImageEnDBView1- >AutoStretch = true;
//ImageEnDBView1- >DataSource = DataSource1;
ImageEnDBView1- >DataField = ((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >FieldName;
TMemoryStream *dataStream = new TMemoryStream();
((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >SaveToStream(dataStream);
if (dataStream- >Size <100) {ImageEnDBView1- >Clear();
ImageEnDBView1- >AutoStretch = false;
ImageEnDBView1- >Bitmap- >Canvas- >Font- >Size = 40;
ImageEnDBView1- >Bitmap- >Canvas- >Font- >Color = clRed;
ImageEnDBView1- >Bitmap- >Canvas- >TextOutA(0,20," 无 图 片 ");
}
//ImageEnDBView1- >LoadPicture();
ImageEnDBView1- >Update();//更新显示图片
Label1- >Caption = ((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >FieldName+" size: "+IntToStr(dataStream- >Size);
delete dataStream;
}
//导出图片,支持JPG,BMP等多种格式导出-----------------------------------------------
void __fastcall TForm1::OutputBtnClick(TObject *Sender)
{
if (SaveImageEnDialog1- >Execute())
ImageEnDBView1- >IO- >SaveToFile(SaveImageEnDialog1- >FileName);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DeleteBtnClick(TObject *Sender)//删除字段的图片
{ ADOTable1- >Edit();
ImageEnDBView1- >Clear();
((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >Clear();
ADOTable1- >Post();
}
相关文章推荐
- 使用jQuery动态改变图片显示大小
- Repeater控件的使用 (原样导出和动态显示/隐藏Repeater中的列)
- UITableView 系列一 :基本使用方法 (显示,删除,添加图片,添加样式等) (实例)
- 使用Aspose.Cells导出EXCEL且导入图片可自动缩小
- 精典动态库使用导入导出
- Repeater控件的使用 (原样导出和动态显示/隐藏Repeater中的列)
- 使用 sqlyog 导入导出数据显示 lost connection to mysql server during query
- 使用vector建立结构体变量的数组,动态进行增加删除和显示
- 使用Qt将一系列图片通过网络发送到客户端动态显示的参考代码(修改一下可以用作远程网络监控)
- dskinlite(uieasy mfc界面库)使用记录3:绘制动态元素(按钮控件通过隐藏方式修改图片显示)
- asp.net中使用Uploadify插件实现多张图片上传,上传后可显示缩略图、删除图片
- 使用picture控件动态显示图片方法
- 浅析Repeater控件的使用 (原样导出和动态显示/隐藏Repeater中的列)
- 使用Magento导入导出功能实现批量上传带图片产品
- JS使用oumousemove和oumouseout动态改变图片显示的方法
- Repeater控件的使用 (原样导出和动态显示/隐藏Repeater中的列)
- pro*C 使用动态sql方法四实现数据批量导入导出
- 关于使用Eclipse导出jar文件时图片不能显示的问题
- 使用freemarker导出word(含图片 表格动态行)
- ADO.NET控制图片数据,导入导出数据库