unit Unit4;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,System.DateUtils,
System.Generics.Collections{map 引用的单元};
type TMyclass = class
public
constructor Create(name: pchar);overload; //重载 主动调用
destructor Destroy;override; //重写 free时会自动调用析构函数
private
Flist: TList;
public
end;
type
TForm4 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
var
map: TDictionary<integer,TMyclass> ; //定义一个map
i: Integer;
my: TMyclass;
begin
map := TDictionary<integer,TMyclass>.Create(0);
for I := 0 to 9 do
map.Add(i,TMyclass.Create(PChar(i.ToString()))); //循环加
for I := 0 to map.Count - 1 do
begin
my := map.Items[i];
Memo1.Lines.Add(Format('%d=%d',[i,Integer(my)]));
if my <> nil then FreeAndNil(my); //释放
end;
map.Free; //销毁
end;
{ TMyclass }
constructor TMyclass.Create(name: pchar);
begin
Flist := TList.Create;
Flist.Add(name)
end;
destructor TMyclass.Destroy;
begin
FreeAndNil(Flist);
inherited;
end;
end.