2009下Timage漏得厉害,该如何处理

MySunGod 2008-10-11 09:53:00
反复执行Image1->Picture->Assign(TBMP);以期装载新的图像,会导致内存占用持续增加........


我又不想把Timage删掉再重建,有什么好办法么
...全文
130 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yumikoo 2008-10-13
  • 打赏
  • 举报
回复
Image1->Picture->Assign(TBMP)???????????
Image反复装载一个图片却不清空,内存泄露那是必然。
Image1->Picture->Assign(NULL)
Image1->Picture->Assign(TBMP)
看看两者有何不一样咯
vbcrack 2008-10-13
  • 打赏
  • 举报
回复
正在试用,感觉还不错
MySunGod 2008-10-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 yumikoo 的回复:]
Image1->Picture->Assign(TBMP)???????????
Image反复装载一个图片却不清空,内存泄露那是必然。
Image1->Picture->Assign(NULL)
Image1->Picture->Assign(TBMP)
看看两者有何不一样咯
[/Quote]

还是漏,不过分还是给你
yf2100 2008-10-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 MySunGod 的回复:]
Image1->Picture->CleanupInstance();

搞定!!!

bcb2009的问题多得令人发指,我都后悔把代码迁移到2009了
[/Quote]结论下的太轻率了,我的经验---绝大多数时候,,,如果认为自己没错,IDE错了,休息几天,绝对不要坐在电脑前,等你坐回来的时候你就会发现:还是自己错了
Format_CIH 2008-10-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yf2100 的回复:]

结论下的太轻率了,我的经验---绝大多数时候,,,如果认为自己没错,IDE错了,休息几天,绝对不要坐在电脑前,等你坐回来的时候你就会发现:还是自己错了
[/Quote]
同意,太同意了。我前几天刚刚有相同的经历
我来看看CB 2008-10-12
  • 打赏
  • 举报
回复
其实2009把以前好多容易犯的错误都提示出来了。。。
hnzlk 2008-10-12
  • 打赏
  • 举报
回复
bcb2009好用吗?
勉励前行 2008-10-11
  • 打赏
  • 举报
回复
你该在主线程下运行你的代码,以测试是否真有内存问题,这样就知道是否B2009的问题了。
你的代码在多线程下可能问题,没出问题是幸运。
MySunGod 2008-10-11
  • 打赏
  • 举报
回复
Image1->Picture->CleanupInstance();

搞定!!!

bcb2009的问题多得令人发指,我都后悔把代码迁移到2009了
MySunGod 2008-10-11
  • 打赏
  • 举报
回复
忘了说,我是在线程内访问Timage
MySunGod 2008-10-11
  • 打赏
  • 举报
回复
TBMP全部释放掉了,一旦屏蔽掉这一句后,内存使用马上恢复正常.......

最早就是怀疑TBMP,BMP,JPG没有正常释放,后来都排除了......

PicOpenDialog->ProcessP(SI->PI->FilePath, SI->PI->FileName, ::ZZPhotoUploader->Res.ToInt(), BMP, TBMP, JPG, -1, -1);
LS->Caption = "旋转图片";
PicOpenDialog->Turn(TBMP, SI->PI->Turn);
Image1->Picture->Bitmap->Assign(TBMP);
LS->Caption = "压缩图片";
JPG->Assign(TBMP);
JPG->CompressionQuality = 85;
JPG->Compress();
::ZZPhotoUploader->LS->Caption = "准备上传";
JPG->SaveToStream(MS);
MS->Seek(0,soFromBeginning);
PostStream->AddFormField("AlbumID", ::Aid);
PostStream->AddObject("UpName", "image/JPEG", MS, SI->PI->FileName + ".jpg");
Result = IdHTTP1->Post(UPLOAD_PAGE, PostStream);
gavinzhu 2008-10-11
  • 打赏
  • 举报
回复
是你TBMP没释放吧,代码全一些

604

社区成员

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

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