关于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;

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

...全文
52 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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类型!
谢谢!
  • 打赏
  • 举报
回复
发帖
Delphi

5124

社区成员

Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
帖子事件
创建了帖子
2001-05-22 09:28
社区公告
暂无公告