文档章节

详测 Generics Collections TQueue (3): OnNotify、Extract

涂孟超
 涂孟超
发布于 2014/09/26 15:33
字数 166
阅读 4
收藏 0
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    procedure MyQueueNotify(Sender: TObject; const Item: Integer;
      Action: TCollectionNotification);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//uses Generics.Collections;

{准备给 TQueue.OnNotify 调用的事件过程}
procedure TForm1.MyQueueNotify(Sender: TObject; const Item: Integer;
  Action: TCollectionNotification);
begin
  case Action of
    cnAdded     : ShowMessageFmt('Add: %d', [Item]);
    cnRemoved   : ShowMessageFmt('Remove: %d', [Item]);
    cnExtracted : ShowMessageFmt('Extract: %d', [Item]);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Queue: TQueue<Integer>;
begin
  Queue := TQueue<Integer>.Create();
  Queue.OnNotify := MyQueueNotify;

  Queue.Enqueue(11); {Add: 11}
  Queue.Enqueue(22); {Add: 22}
  Queue.Enqueue(33); {Add: 33}

  Queue.Dequeue;     {Remove: 11}

  // Extract 和 Dequeue 功能一致, 区别只是在驱动 OnNotify 事件时传递的参数有区别, 没多大意义
  Queue.Extract;     {Extract: 22}

  //Queue.OnNotify := nil;

  Queue.Free;        {Remove: 33}
end;

end.

 
 
 
 
 

 

 

  

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

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
Delphi 2010 中的泛型

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

vga
2016/08/09
19
0
DuiLib消息处理剖析

文章来源:http://blog.csdn.net/zhuhongshu/article/details/41725657 分为几个大部分: 控件 容器(本质也是控件) UI构建解析器(XML解析) 窗体管理器(消息循环,消息映射,消息处理,窗...

analogous_love
2017/07/23
0
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
Google Guava vs Apache Commons for Argument Validation

It is an established good practice to validate method arguments at the beginning of the method body. For example you could check that the passed value is not negative before doi......

泳泳啊泳泳
01/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

《碎玉投珠》的读后感想法心得范文3800字

《碎玉投珠》的读后感想法心得范文3800字: 《碎玉投珠》是晋江作者北南2018年的作品,内容主要讲述了其17年的《两小无嫌猜》中副cp师父师叔的爱情故事。 个人并没有看过北南其他的作品,这篇...

原创小博客
26分钟前
0
0
Confluence 6 文档主题合并问答

在 Confluence 官方 前期发布的消息 中,文档主题在 Confluence 6.0 及其后续版本中已经不可用。我们知道你可能对这个有很多好好奇的问题,因此我们在这里设置了一个问答用于帮助你将这个主题...

honeymose
38分钟前
2
0
java框架学习日志-2

上篇文章(java框架学习日志-1)虽然跟着写了例子,也理解为什么这么写,但是有个疑问,为什么叫控制反转?控制的是什么?反转又是什么? 控制其实就是控制对象的创建。 反转与正转对应,正转...

白话
今天
6
0
Integer使用双等号比较会发生什么

话不多说,根据以下程序运行,打印的结果为什么不同? Integer a = 100;Integer b = 100;System.out.println(a == b);//print : trueInteger a = 200;Integer b = 200;System.out.pr...

兜兜毛毛
昨天
11
0
CockroachDB

百度云上的CockroachDB 云数据库 帮助文档 > 产品文档 > CockroachDB 云数据库 > 产品描述 开源NewSQL – CockroachDB在百度内部的应用与实践 嘉宾演讲视频及PPT回顾:http://suo.im/5bnORh ...

miaojiangmin
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部