我用SourceProperties[0].SetValue(lObject, lStream)设置MemoryStream : TMemoryStream的属性lObject。
如果我随后释放了lStream, 的MemoryStream属性lObject似乎被设置为nil。
如果我不释放lStream,就会出现内存泄漏。
通过 RTTI将 分配lStream给MemoryStream属性的正确方法是什么?
下面列出了完整的示例代码:
unit Unit28;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics,
FMX.Controls.Presentation, FMX.StdCtrls, System.Rtti;
type
TMyObject = Class(TObject)
private
pMemoryStream : TMemoryStream;
published
property MemoryStream : TMemoryStream read pMemoryStream write pMemoryStream;
constructor Create;
destructor Destroy;override;
end;
type
TForm28 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject); …Run Code Online (Sandbox Code Playgroud)