文档章节

详测 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
191
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 3......

红薯
2011/03/05
1K
0
数据库 性能对比

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
ylbtech-LanguageSamples-Generics(泛型)

ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Generics(泛型) 1.A,示例(Sample)返回顶部 “泛型”示例 (C#) 本示例演示如何创建具有单个类型参数的自定义泛型列表类,以及如何...

吞吞吐吐的
2017/11/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

深度学习中的注意力机制

最近两年,注意力模型(Attention Model)被广泛使用在自然语言处理、图像识别及语音识别等各种不同类型的深度学习任务中,是深度学习技术中最值得关注与深入了解的核心技术之一。 本文以机器...

火力全開
3分钟前
0
0
去除文件中

最近生成的文件中出现了<feff>乱码,而且单个文件中出现不止一次,在vim中打该文件显示<feff>,而在idea中则显示一个“-”,对数据处理造成了极大的困扰,通过使用其它编辑器打开发现,Windo...

休辞醉倒
4分钟前
0
0
想搞懂大数据就看这篇文章就够了!

互联网时代的到来,各种专业词汇术语充斥着我们的大脑,大数据,人工智能更是当下时代的热点潮流,很多传统企业都徘徊穿梭于这个潮流当中,传统广告的褪去,移动互联网时代的大数据精准整合营...

董黎明
7分钟前
1
0
go module 初体验

尽管官方的go module比较好用,但由于很多库下载不了,所以需要用到以下配置 export PATH=/mnt/d/download/go/bin/:$PATH export GOPATH=/home/fish/dipamkara/ #export GOPATH=/mnt/d/work...

LoveCupid
10分钟前
1
0
【小白学游戏常用算法】二、A*启发式搜索算法

  在上一篇博客中,我们一起学习了随机迷宫算法,在本篇博客中,我们将一起了解一下寻路算法中常用的A*算法。   通常情况下,迷宫寻路算法可以使用深度优先或者广度优先算法,但是由于效...

hejunbinlan
13分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部