关于Image控件的一个问题!

lingice 2001-05-22 09:28:00
各位大虾,
小弟我最近编写一个小程序用到Image这个控件,我首先把一个BMP的图片存到一个
TMemoryStream的流里,然后通过Image1.picture.bitmap.loadstream(),让存在这个
流里的BMP图片显示出来,可是当我更新了这个流里的BMP图片,然后在此用Image1.picture.bitmap.loadstream()来显示,程序就报错了!
类似于:
var
temp:TMemoryStream;
........
begin
........
Image1.picture.bitmap.loadstream(temp);//第一次显示图片
temp.clear;
temp.copyfrom(temp1,0);// 更新存在temp中的的BMP文件
Image1.picture.bitmap.loadstream(temp) //再次显示,(错就处在这)!
......
end;

请问我该如何解决?
谢谢!

...全文
66 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
musicwind 2001-05-22
  • 打赏
  • 举报
回复
关键:
Temp1.Position := 0; //没有重新设置!


Image1.picture.bitmap.loadstream(temp);//第一次显示图片
temp.clear;
Temp1.Position := 0; //NOTE !!!!!!!!!!!!!!!
~~~~~~~~~~~~~~~~~~~~~~~````
temp.copyfrom(temp1,0);// 更新存在temp中的的BMP文件
Image1.picture.bitmap.loadstream(temp) //再次显示,(错就处在这)!
ePing 2001-05-22
  • 打赏
  • 举报
回复
看看CopyFrom的用法
procedure TForm1.Button1Click(Sender: TObject);

var
Stream1, Stream2 : TBlobStream;
begin
Stream1 := TBlobStream.Create(Table1Notes, bmRead);
try
Table2.Edit;
{ here抯 a different way to create a blob stream }
Stream2 := Table2.CreateBlobStream(Table2.FieldByName('Remarks'), bmReadWrite);
try
Stream2.CopyFrom(Stream1, Stream1.Size);
Table2.Post;
finally
Stream2.Free;
end;
finally
Stream1.Free;

end;
end;
yypp 2001-05-22
  • 打赏
  • 举报
回复
把temp.copyfrom(temp1,0);改成temp.copyfrom(temp1,temp1.size);
lingice 2001-05-22
  • 打赏
  • 举报
回复
又补充一点:
应该是loadfromstream,我写的太快乐了,没有注意1
还有,temp1也一个TMemoryStream类型!
谢谢!

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧