解决方案 »
- 求 Asta For delphi 2007控件
- 纯VCL数据库引擎FireDBV1.01
- 这个filter怎么用
- 请问在Delphi中指针的指针该如何定义?
- 用什么语句把用htmlhelp做的帮助文件连接到help菜单触发的onclick过程下!
- 如何在接口中定义function?
- 关于数据库打包的问题,请老鸟回答
- 初学delphi求指教
- 怎样向只知道 Handle 的窗体 贴控件? 谢谢!!
- Delphi中DBGrid用Table的IndexDefs和IndexFieldNames排序,哪位大哥可给个详细例子?
- CXGrid主从表,获取从表里选中的那行的内容。
- delphi7 读取win7 64位注册表问题
1、打开数据库后,只要DBImage读取图像,再保存即可。
2、打开数据库后,只要DBImage另存,就可另存图像文件。
procedure Tform1.selectimageClick(Sender: TObject); //选择图像
begin
if openpicturedialog1.Execute then
image1.Picture.LoadFromFile(openpicturedialog1.FileName );
end;
procedure Tform1.savetodbClick(Sender: TObject); //保存图像到数据库
var
ext:string;
begin
if image1.picture.Graphic <> nil then //避免image1中无图像保存出错
begin
adotable1.Edit ;
adotable1.FieldByName('myimage').Assign(image1.Picture.Graphic);
//以下记录保存到数据库的图像格式
ext:=extractfileext(openpicturedialog1.FileName ); //取出文件扩展名
if uppercase(ext) = '.BMP' THEN
adotable1.FieldByName('isbmp').VALUE := 1 //BMP型图像数据
ELSE IF (UPPERCASE(EXT) = '.JPEG') OR (UPPERCASE(EXT) = '.JPG') THEN
adotable1.FieldByName('isbmp').VALUE := 0; //JPEG型图像数据
ADOTABLE1.Post ;
end;
end;procedure Tform1.ADOTable1AfterScroll(DataSet: TDataSet); //ADOTable1的AfterScroll事件方法程序
var
jpegimage:tjpegimage;
begin
image1.Picture.Graphic :=nil;
//下边BMP、JPEG两种图像数据必需分别处理
if adotable1.fieldbyname('isbmp').Asstring = '1' then //BMP型图像数据
image1.Picture.bitmap.Assign(adotable1.fieldbyname('myimage'))
//上边语句中的bitmap不能为graphic,否则会出错
else if adotable1.fieldbyname('isbmp').asstring = '0' then //JPEG型图像数据
begin //begin2
jpegimage := tjpegimage.Create ; //通过jpegimage将图像显示在image1,否则会出错
try
jpegimage.Assign(adotable1.fieldbyname('myimage'));
image1.Picture.Graphic :=jpegimage;
finally
jpegimage.Free ;
end; //end try
end; //end begin2
end;