zoukankan      html  css  js  c++  java
  • 详测 Generics Collections TQueue (3): OnNotify、Extract

    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.
    
  • 相关阅读:
    marshaller unmarshaller解析xml和读取xml
    request请求地址
    SAP系统接口方式:
    SAP 后台job
    查找系统锁对象
    动态生成ABAP程序-资料
    BDC程序步骤
    ABAP 创建测试文件
    ALE和IDocs
    ABAP锁,数据库锁
  • 原文地址:https://www.cnblogs.com/del/p/1580881.html
Copyright © 2011-2022 走看看