我正在使用Delphi 1 16位来学习Pascal(不要笑,它工作正常,加上我买不起更新的版本).我正在使用TList来保存简单地址簿的对象引用.每个对象都添加到TList中,如下所示:
DataList.Add(TAddrBookData.Create('Bob', '1 Mill St'));
Run Code Online (Sandbox Code Playgroud)
我是否需要自己释放TAddrBookData对象?或者当TList.Free运行时它们被释放了吗?
德尔福1 16位(是的它已经老了,但效果很好)
一些示例代码:
procedure TForm1.Button1Click(Sender: TObject);
var
SL: TStringList;
begin
SL := TStringList.Create;
SL.Sorted := True;
SL.Duplicates := dupIgnore;
SL.AddObject('A', TObject(100));
SL.AddObject('A', TObject(999));
ShowMessage(IntToStr(LongInt(SL.Objects[0]))); {A}
SL.Free;
end;
Run Code Online (Sandbox Code Playgroud)
我正在使用Object字段来存储longints(一个hack,是的,但它可以完成工作).无论如何,在上面的A行,我希望ShowMessage显示100,而不是显示999(即使设置了dupIgnore).我在这里错过了什么吗?或者它应该以这种方式工作(我希望stringlist忽略999)?
delphi ×2