procedure TForm3.btn1Click(Sender: TObject); const w=100; h = 20; var ObjList: TObjectList; LstList:Tstringlist;
Edit: TEdit; i: Integer; begin ObjList := TObjectList.Create(); lstlist :=tstringlist.create; //ObjList := TObjectList.Create(False); {如果这样建立, 对象退出列表是则不会自动释放}
Randomize; for i := 0 to 5 do {建立 6 个 Edit, 并加入列表} begin Edit := TEdit.Create(Self); Edit.Parent := Self; Edit.SetBounds(Random(ClientWidth-w), Random(ClientHeight-h), w, h); // ObjList.Add(Edit); LstList.AddObject('',Edit); end; LstList.Delete(0); // // {2 秒钟后删除一个} // Sleep(2000); // ObjList.Delete(0); // // {2 秒钟后提取一个, 让被提取的变红; 提取的对象不会被自动释放的} // Sleep(2000); // Edit := Tedit(ObjList.Extract(ObjList[0])); // Edit.Color := clRed; // Edit.Repaint; // // //ObjList.OwnsObjects := False; {如果这样, 对象退出列表是也不会自动释放} // // {2 秒钟后销毁列表; 列表中的对象也会随之释放} // Sleep(2000); ObjList.Free; lstlist.free; end;