主要功能代码如下:var Imagenode:array[1..1000] of TMyImag;
创建小图标:
ExistMaxNo:=ExistMaxNo+1;
Imagenode[ExistMaxNo]:=TMyImag.Create(self) ;小图标右键点删除时:
释放对象:TMyImag(PopMenuNode.PopupComponent).Free;注:自己编写的TMyImag仅增加NodeID属性作为每个图标的代号
procedure TMyImag.SetNodeID (NodeID:string);   //增加此过程
begin
  FNodeID := NodeID ;
end ;??问题是:删除某些图标后,调试显示新增的图标NodeID属性为空了?
正常每个图标确实赋了对应的NodeID不会为空的。
是否是释放对象代码问题呢??

解决方案 »

  1.   

    可能是这样子的:我们可以想象一下过程:
        首先,你建立了5个小图标,编号1,2,3,4,5,此时existmaxno=5
        然后你删除了2,3,此时exsitmaxno=5
        你又增加了一个小图标,编号为6,exsitmaxno=6,但它占用的内存恐怕不是从5往后紧跟着的吧我也是菜鸟,关注!
      

  2.   

    我删除每个图标后,exsitmaxno:=exsitmaxno-1;
    不过有可能是不对应了,但每个图标对象都有自己的nodeid属性了呀
    不知如何改呢,请教高手??