文档章节

详测 Generics Collections: TObjectList、TObjectQueue、TObjectStack

涂孟超
 涂孟超
发布于 2014/09/26 15:36
字数 307
阅读 8
收藏 0

TObjectList<T>、TObjectQueue<T>、TObjectStack<T> 分别继承自:
TList<T>、TQueue<T>、TStack<T>;

它们是专门用于对象的列表, 都增加了一个 OwnsObjects 布尔属性, 决定对象会不会自动释放(这也通过 Create 的参数来决定)

其他基本同它们的父类, 仅给 TObjectList<T> 测试一例(至此泛型相关内容学习完毕):
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses Generics.Collections;

procedure TForm1.Button1Click(Sender: TObject);
const
  w = 100; h = 20;
var
  ObjList: TObjectList<TEdit>;
  Edit: TEdit;
  i: Integer;
begin
  ObjList := TObjectList<TEdit>.Create();
  //ObjList := TObjectList<TEdit>.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);
  end;

  {2 秒钟后删除一个}
  Sleep(2000);
  ObjList.Delete(0);

  {2 秒钟后提取一个, 让被提取的变红; 提取的对象不会被自动释放的}
  Sleep(2000);
  Edit := ObjList.Extract(ObjList[0]);
  Edit.Color := clRed;
  Edit.Repaint;

  //ObjList.OwnsObjects := False; {如果这样, 对象退出列表是也不会自动释放}

  {2 秒钟后销毁列表; 列表中的对象也会随之释放}
  Sleep(2000);
  ObjList.Free;
end;

end.

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2009/10/12/1581114.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
GBin1推荐教程之Java泛类型(Generics)快速入门

发布时间: 2011-9-20 来源:javacodegeeks.com 翻译: gbin1.com 泛类型(Generics)是Java SE5.0里的特性,在发布后的几年里,我相信每个java开发者都不仅仅听说过,而且实实在在的使用过。...

gbin1
2011/09/21
180
0
Apache Maven 3.0.3 Released

相比较 Maven 3.0.2 版本,3.0.3 改进主要包括: [MNG-3575] - Allow hexadecimal parameters [MNG-4971] - Display maven home in version info * [MNG-4984] - Simplify drop in of 3rd p......

红薯
2011/03/05
1K
0
java范型中的get、put原则

java范型中的get、put原则 只要有可能,一个好的习惯就是插入通配符(wildcards ),但是如何决定选择哪种通配符呢?即什么场景选择extends,什么场景选择super,以及什么场景不适合选择通配...

Beaver_
2015/05/24
565
1
数据库 性能对比

Insertion speedHere we insert 5,000 rows of data, with diverse scenarios: 'Direct' stands for a individual Client.Add() insertion;'Batch' mode will be described below;'Trans' in......

vga
2016/06/14
139
1
Delphi 2010 中的泛型

Delphi 2010 中的泛型日期:2010年5月31日 作者: 人气:10504 查看:[大字体 中字体 小字体]2010已发布很长时间了,口碑还不错,准备用它开发下一项目,但对泛型等新东西的认识还不够,就搜了...

vga
2016/08/09
19
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

新工作与老项目

新的工作不知不觉的干了一个多月了。怎么说呢,跟想象中的差别不少,本来想的能进来跟大公司的同事能有很多交流,能在团队中跟大牛学习更快。结果公司的这个项目上只有两个程序员,项目是十年...

zypy333
17分钟前
0
0
mysql 在windows的安装

mysql 在windows的安装。 mysql64位的server的下载地址是: https://dev.mysql.com/downloads/mysql/ 使用的是5.7版本。 下载安装包,解压至D:\mysql\mysql-5.7.23-winx64\ 在D:\mysql\mysq...

lxzh504
30分钟前
1
0
云技术、大数据(hadoop)入门常见问题回答

当我们学习一门新技术的时候,我们总是产生各种各样的问题,这些问题整理出来,包括该 1.如何学习hadoop? 2.hadoop常见问题? 3.还有hbase、hive安装使用等? 你知道搭建hadoop平台需要些什...

董黎明
30分钟前
1
0
小程序自定义底部tab

场景 1.tabBar是在内页而非首页,这时就不得不自定义一个tabBar了 2.自定义风格 3.子页数量超过5个,得到更多了tab 4.改变点击tab默认事件,比如出登录界面,或者弹出上拉子菜单等 步骤 1.照...

萤火的萤火
35分钟前
1
0
shell炫技

1.为脚本添加“--help” #!/bin/shif [ ${#@} -ne 0 ] && [ "${@#"--help"}" = "" ]; then printf -- '...help...\n'; exit 0;fi; 2.输出字体添加颜色 https://misc.flogisoft.com......

HJCui
36分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部