zoukankan      html  css  js  c++  java
  • 详测 Generics Collections TDictionary(4): OnKeyNotify、OnValueNotify

    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 KeyNotify(Sender: TObject; const Item: string;
          Action: TCollectionNotification);
        procedure ValueNotify(Sender: TObject; const Item: Integer;
          Action: TCollectionNotification);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.KeyNotify(Sender: TObject; const Item: string;
      Action: TCollectionNotification);
    begin
      case Action of
        cnAdded     : ShowMessageFmt('Key_Add: %s', [Item]);
        cnRemoved   : ShowMessageFmt('Key_Remove: %s', [Item]);
        cnExtracted : ShowMessageFmt('Key_Extract: %s', [Item]);
      end;
    end;
    
    procedure TForm1.ValueNotify(Sender: TObject; const Item: Integer;
      Action: TCollectionNotification);
    begin
      case Action of
        cnAdded     : ShowMessageFmt('Value_Add: %d', [Item]);
        cnRemoved   : ShowMessageFmt('Value_Remove: %d', [Item]);
        cnExtracted : ShowMessageFmt('Value_Extract: %d', [Item]);
      end;
    end;  
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Dictionary: TDictionary<string,Integer>;
    begin
      Dictionary := TDictionary<string,Integer>.Create();
      Dictionary.OnKeyNotify := KeyNotify;
      Dictionary.OnValueNotify := ValueNotify;
    
      Dictionary.Add('n1', 111); {Key_Add: n1;  Value_Add: 111}
      Dictionary.Add('n2', 222); {Key_Add: n2;  Value_Add: 222}
    
      Dictionary.AddOrSetValue('n1', 123); {Value_Remove: 111;  Value_Add: 123}
    
      Dictionary.Remove('n1');      {Key_Remove: n1;  Value_Remove: 111}
    
      Dictionary.ExtractPair('n2'); {Key_Extract: n2;  Value_Extract: 222}
    
      Dictionary.OnKeyNotify := nil;
      Dictionary.OnValueNotify := nil;
      
      Dictionary.Free;
    end;
    
    end.
    
  • 相关阅读:
    2017-5-15 winform项目总结(知识点补充)
    2017-5-7 time控件 三级联动(省,市,区)
    2017-5-4 进程 线程 用户控件
    2017-5-3 打印控件 MDI 窗体容器 Activated事件
    2017-5-2 对话框控件 MessageBox.Show()用法补充 打开新窗体的3中模式
    窗体移动 窗体阴影API
    2017-4-28 ListView控件学习
    【2017-03-28】JS基础、DOM操作
    【2017-03-24】样式表样式
    【2017-03-24】CSS样式表
  • 原文地址:https://www.cnblogs.com/del/p/1580959.html
Copyright © 2011-2022 走看看