procedure TForm1.Button1Click(Sender: TObject);
var
MyObj : TMyObj;
i : integer;
aList:TList;
begin
aList:=TList.Create;
for i := 0 to 100000 do
begin
MyObj := TMyObj.Create() ;
MyObj.Foo;
aList.Add(myobj); end;
for i :=0 downto 100000 do
begin
TMyObj(aList.Items[i]).free; //这样释放不了
dispose(aList.Items[i]); //这样也释放不了
end;
aList.free;
end;TMyObj 是我自己定义的类
var
MyObj : TMyObj;
i : integer;
aList:TList;
begin
aList:=TList.Create;
for i := 0 to 100000 do
begin
MyObj := TMyObj.Create() ;
MyObj.Foo;
aList.Add(myobj); end;
for i :=0 downto 100000 do
begin
TMyObj(aList.Items[i]).free; //这样释放不了
dispose(aList.Items[i]); //这样也释放不了
end;
aList.free;
end;TMyObj 是我自己定义的类
解决方案 »
- Delphi的WriteProcessMemory问题
- idHTTPServer的问题:内存泄漏为哪般?
- 关于一个工厂工人数据库设计问题
- 急>>>用Delphi下用OleContiner保存的Word数据,怎样在.net下生成Word文件。。。。急
- 学习Delphi Game的URL偶搞DirectX地
- 应该算是参数问题
- 谁知道.PDG是什么格式
- 请问哪有OutlookBar控件下载???
- 同志们休息一下,打个谜语。
- 用Delphi5的Database Desktop 查询Paradox7(*.DB)数据库(10万条记录以上)为什么有的记录不可见?
- 你是否认为写系统就是垃圾代码的堆砌???
- 请高手帮帮我,关于返回一个空表的问题?
begin
FreeAndNil(TMyObj(aList.Items[i]));
aList.delete(i);
end;
FreeAndNil(aList);
begin
FreeAndNil(TMyObj(aList.Items[i]));
aList.delete(i);
end;
FreeAndNil(aList);
var
FOffLine: TRetailOffline;
AList: TList;
I: Integer;
begin
AList := TList.Create;
try
for I := 0 to 1000 do
begin
FOffLine := TRetailOffline.Create(nil, '',False);
AList.Add(FOffLine);
end;
for I:= 1000 downto 0 do
if Assigned(AList.Items[I]) then
TRetailOffline(AList.Items[I]).Free;
finally
AList.Free;
end;
end;
var
MyObj : TMyObj;
aMyObj : ^TMyObj;
i : integer;
aList:TList;
begin
aList:=TList.Create;
for i := 0 to 100000 do
begin
MyObj := TMyObj.Create() ;
MyObj.Foo;
aList.Add(myobj); end;
for i :=0 downto 100000 do
begin
aMyObj:=aList.Items[i];
FreeAndNil(aList.Items[i]); //这样是可以的 dispose(aMyObj); //或者这样也可以
end;
FreeAndNil(aList);
end;