delphi 遍历文件夹下的jpg图片并全部显示在界面里面,但是最后一张图片却不管怎么样都删除不了

下面是显示图片的主要代码,按规则排列paintbox以后在里面把图片画出来,最后已经将JPG给free了,但是不管多少张图片,最后一张图片总是无法被删除,这是为什么?是还... 下面是显示图片的主要代码,按规则排列paintbox以后在里面把图片画出来,最后已经将JPG给free了,但是不管多少张图片,最后一张图片总是无法被删除,这是为什么?是还有什么地方需要free吗?
procedure tpicthread.cpb(num:integer;filestr:string); //num用于排序的计数,filestr是图片文件的绝对地址
begin
pbox:=tpaintbox.Create(main_unit.mainpage);
pbox.Hide;
try
pbox.Name:='pic'+inttostr(num);
except
showmessage('照片名称不符合命名规则');
end;
pbox.Parent:=main_unit.showpic;
pbox.Color:=clWhite;
jpg:=tjpegimage.Create;
jpg.LoadFromFile(filestr);
pbox.Height:=boxh(main_unit.showpic,jpg);
arrange(pbox);
pbox.SetBounds(ntleft,nttop,round((main_unit.showpic.Width-40)/3),boxh(main_unit.showpic,jpg));
pbox.Show;
pbox.PopupMenu:=mainpage.PM1;
pbox.OnPaint:=showpic;
pbox.OnDblClick:=imagheclick;
pbox.OnContextPopup:=main_unit.mainpage.newcpopup;
jpg.Free;
end;
此问题已经解决。。。。
展开
 我来答
匿名用户
2013-09-29
展开全部
pbox也free 一下看看?

感觉你pbox是指向jpg了吧?如果有可能用 assign copy出来试试
追问
pbox只是个tpaintbox控件,本身没有链接JPG的属性,所以不可能指向JPG,而且也不能把它给free了,因为JPG最后是画上去的,所以本身没有任何属性,我利用pbox来定位后台文件夹中的每一个jpg文件的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
网开一面乎
2013-09-29 · 超过28用户采纳过TA的回答
知道答主
回答量:85
采纳率:0%
帮助的人:52.7万
展开全部
因为最后一张图片正在被你的程序使用中,无法删除
追问
我也知道是被锁定了,但是我不知道从哪里free,现在所了解的情况就是有可能是
Img:=NewGpBitmap(filestr);

这条的问题,但是这个又不能free,问过之前的改变作者,他说这个也没办法,或者只能通过流来操作,但是以前没用过流,正在琢磨。。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式