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;
此问题已经解决。。。。 展开
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;
此问题已经解决。。。。 展开
2个回答
2013-09-29
展开全部
pbox也free 一下看看?
感觉你pbox是指向jpg了吧?如果有可能用 assign copy出来试试
感觉你pbox是指向jpg了吧?如果有可能用 assign copy出来试试
追问
pbox只是个tpaintbox控件,本身没有链接JPG的属性,所以不可能指向JPG,而且也不能把它给free了,因为JPG最后是画上去的,所以本身没有任何属性,我利用pbox来定位后台文件夹中的每一个jpg文件的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询