TstringList有个AddObject方法,在加入项目时可以加入一个关联对象,但在加入对象时要注意的是,加入的只是这个对象的地址,并不是值,所以如果使用下面的语句:
for i:=1 to 5 do
begin
list.addObject(IntToStr(i),TObject(i));
end;
其后再取出Object值时,里面的值可能不是原来的内容了,因为它只存储了当时的地址,地址里的值如果改变了,则也会相应改变了。解决这个问题的一个方法可用另一个StringList先保存值,再作为Object添加进去,最后再释放这个临时的StringList.如:
for i:=1 to 5 do
list1.add(IntToStr(i));
for i:= 1 to 5 do
list.addObject(IntToStr(i),TObject(list1[i]);
......
list1.free;