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 MyListNotify(Sender: TObject; const Item: string ;
Action: TCollectionNotification);
end ;
var
Form1: TForm1;
implementation
{ $R *.dfm }
{ 准备给 List.OnNotify 调用的事件过程 }
procedure TForm1.MyListNotify(Sender: TObject; const Item: string ;
Action: TCollectionNotification);
begin
case Action of
cnAdded : ShowMessageFmt( ' Add: %s ' , [Item]);
cnRemoved : ShowMessageFmt( ' Remove: %s ' , [Item]);
cnExtracted : ShowMessageFmt( ' Extract: %s ' , [Item]);
end ;
end ;
procedure TForm1.Button1Click(Sender: TObject);
var
List: TList < string > ;
begin
List : = TList < string > .Create();
List.OnNotify : = MyListNotify; { 关联事件过程 }
List.AddRange([ ' A ' , ' B ' , ' C ' ]); { Add: A | Add: B | Add: C }
List.Delete( 0 ); { Remove: A }
List.Remove( ' B ' ); { Remove: B }
List.Extract( ' C ' ); { Extract: C }
List.OnNotify : = nil ;
List.Free;
end ;
end .
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 MyListNotify(Sender: TObject; const Item: string ;
Action: TCollectionNotification);
end ;
var
Form1: TForm1;
implementation
{ $R *.dfm }
{ 准备给 List.OnNotify 调用的事件过程 }
procedure TForm1.MyListNotify(Sender: TObject; const Item: string ;
Action: TCollectionNotification);
begin
case Action of
cnAdded : ShowMessageFmt( ' Add: %s ' , [Item]);
cnRemoved : ShowMessageFmt( ' Remove: %s ' , [Item]);
cnExtracted : ShowMessageFmt( ' Extract: %s ' , [Item]);
end ;
end ;
procedure TForm1.Button1Click(Sender: TObject);
var
List: TList < string > ;
begin
List : = TList < string > .Create();
List.OnNotify : = MyListNotify; { 关联事件过程 }
List.AddRange([ ' A ' , ' B ' , ' C ' ]); { Add: A | Add: B | Add: C }
List.Delete( 0 ); { Remove: A }
List.Remove( ' B ' ); { Remove: B }
List.Extract( ' C ' ); { Extract: C }
List.OnNotify : = nil ;
List.Free;
end ;
end .