大侠你好,我用你的源代码来解决图片的存取问题,却发现程序编译时不能通过,请问如何解决这个问题? 另外这两个TBlobField;TstringField组件那有呀?;
[Error] Unit6.pas(42): Undeclared identifier: 'TJPEGImage'
[Error] Unit6.pas(47): Missing operator or semicolon
[Error] Unit6.pas(54): Undeclared identifier: 'SaveToStream'
附大侠提供的源代码:
搞定了图片在数据库的读取问题, 大家也看看
完整的代码如下:
//这个是保存的代码
procedure TForm1.Button1Click(Sender: TObject);
var
MyJPEG : TJPEGImage;
MS: TMemoryStream;
begin
if opendialog1.Execute then
begin
MyJPEG := TJPEGImage.Create;
try
with MyJPEG do
begin
image1.Picture.LoadFromFile(opendialog1.FileName);
Assign(Image1.Picture.Graphic);
MS:=TMemoryStream.create;
SaveToStream(MS);
MS.Position:=0;
adoTable1.append;
TBlobField(adoTable1.FieldbyName('picture')).LoadFromStream(MS);
adoTable1.Post;
messagebox(getactivewindow(),'图像保存完毕!','保存',mb_ok);
end;
finally
MyJPEG.Free;
end;
end;
end;//这个是读取的代码
procedure TForm1.Button2Click(Sender: TObject);
var tempstream:TmemoryStream; // tempstream:tstringstream 也可以
tempjpeg:TJPEGImage;
begin
try
tempstream:=TmemoryStream.Create(); // tempstream:=tmemorystream.create(' ');
TBlobField(adotable1.FieldByName('picture')).SaveToStream(tempstream);
tempstream.Position:=0;
tempjpeg:=TJPEGImage.Create;
tempjpeg.LoadFromStream(tempstream);
DBImage1.Picture.Bitmap.Assign(tempjpeg);
finally
tempstream.Free;
tempjpeg.Free;
end;
end;
end.
[Error] Unit6.pas(42): Undeclared identifier: 'TJPEGImage'
[Error] Unit6.pas(47): Missing operator or semicolon
[Error] Unit6.pas(54): Undeclared identifier: 'SaveToStream'
附大侠提供的源代码:
搞定了图片在数据库的读取问题, 大家也看看
完整的代码如下:
//这个是保存的代码
procedure TForm1.Button1Click(Sender: TObject);
var
MyJPEG : TJPEGImage;
MS: TMemoryStream;
begin
if opendialog1.Execute then
begin
MyJPEG := TJPEGImage.Create;
try
with MyJPEG do
begin
image1.Picture.LoadFromFile(opendialog1.FileName);
Assign(Image1.Picture.Graphic);
MS:=TMemoryStream.create;
SaveToStream(MS);
MS.Position:=0;
adoTable1.append;
TBlobField(adoTable1.FieldbyName('picture')).LoadFromStream(MS);
adoTable1.Post;
messagebox(getactivewindow(),'图像保存完毕!','保存',mb_ok);
end;
finally
MyJPEG.Free;
end;
end;
end;//这个是读取的代码
procedure TForm1.Button2Click(Sender: TObject);
var tempstream:TmemoryStream; // tempstream:tstringstream 也可以
tempjpeg:TJPEGImage;
begin
try
tempstream:=TmemoryStream.Create(); // tempstream:=tmemorystream.create(' ');
TBlobField(adotable1.FieldByName('picture')).SaveToStream(tempstream);
tempstream.Position:=0;
tempjpeg:=TJPEGImage.Create;
tempjpeg.LoadFromStream(tempstream);
DBImage1.Picture.Bitmap.Assign(tempjpeg);
finally
tempstream.Free;
tempjpeg.Free;
end;
end;
end.
我上次也是的哦