1. 程式人生 > >在TstringList中加入物件時要注意的問題

在TstringList中加入物件時要注意的問題

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;