在对TStringList操作时,经常要用到TStringList的AddObject方法,在用AddObject加入对象后,一定要记得对加入到TStringList中的对象进行释放,方法有二种,如下 :
1. 在已知道对象名跟对象个数的情况下,我们可以用直接的方法把对象Free掉就可以,
如下代码:
var
vStringList:TStringList;
vObject:TObject;
begin
vStringList:=TStringList.Create;
vObject:=TObject.Create;
try
vStringList.AddObject(' vObject ',vObject);
finally
if vStringList<>nil then
FreeAndNil(vStringList);
end;
vObject.Free
end;
2. 如果不知道对象的名称跟个数据,则我们要用下面的方法进行释放,
代码如下:
var
vStringList:TStringList;
vObject:TObject;
i:Integer;
begin
vStringList:=TStringList.Create;
vObject:=TObject.Create;
try
vStringList.AddObject('0',vObject);
……
vStringList.AddObject('N',NObject);
finally
for i:=0 to vStringList.Count-1 do
begin
vStringList.Objects[i].Free;
end;
if vStringList<>nil then
FreeAndNil(vStringList);
end;
end;
注:如果在用第二种方法的时候,TStringList已经用Delete进行了删除操作,则要找到删除的对象进行释放,否还是会有内存泻漏的问题.