带有自定义初始化和最终化代码的记录

带有自定义初始化和最终化代码的记录

typeTMyRecord = recordValue: Integer;class operator Initialize(out Dest: TMyRecord);class operator Finalize(var Dest:TMyRecord);end;class operator TMyRecord.Finalize(var Dest: TMyRecord);
beginForm1.Memo1.Lines.Add('destroyed ' + IntToHex(IntPtr(@Dest)));
end;class operator TMyRecord.Initialize(out Dest: TMyRecord);
beginDest.Value := 10;Form1.Memo1.Lines.Add('created ' + IntToHex(IntPtr(@Dest)));
end;procedure TForm1.Button1Click(Sender: TObject);
beginvar t: TMyRecord;Caption := t.Value.ToString;    //10
end;