【发布时间】:2017-06-15 23:41:57
【问题描述】:
当我在我的 Android 应用程序中使用组件 TAniIndicator 时,指示器有时(大部分)显示两个指示器,一个是 Android 版本,另一个是 Windows 版本。这是一个错误还是我只是忘记在检查器中检查某些内容?
一张图片来说明:
这是我用来在运行时创建指标的代码:
aiEmpresa := TAniIndicator.Create(vsEmpresa);
aiEmpresa.Parent := vsEmpresa;
aiEmpresa.Align := TAlignLayout.Center;
aiEmpresa.Visible := true;
aiEmpresa.Enabled := true;
【问题讨论】:
-
请提供一个Minimal, Complete and Verifiable example 来证明问题的实际效果。
-
我使用用于创建指标的代码编辑了问题。
-
另一个不是Windows版本指示器,即iOS指示器,如果您不清除所有引用,您可能会在创建此对象时泄漏内存
-
我在完成加载内容时使用
aiEmpresa.DisposeOf。这够了吗?另外,如果我在vsEmpresa上使用DisposeOf,aiEmpresa也会从内存中清除,对吧? -
我宁愿(我认为)而不是使用
DisposeOf,而是按照 ARC 下的预期使用对象,这意味着删除对对象的所有引用并让 ARC 按预期工作,而不是用所有者创建组件然后设置父组件,如果不需要它,用所有者创建它不要(意思是 nil)但仍然给它一个父组件,现在当你想释放对象时只需将父对象分配给nil,你的对象将被释放,对我来说这比粗略的DisposeOf方法好得多
标签: delphi firemonkey delphi-10.1-berlin