如何检查对象是否在firemonkey中发布?

时间:2015-07-06 10:13:09

标签: delphi object firemonkey

我创建了一个组件并在其他地方使用它,但我不知道该组件是否已发布。

那么在使用它之前如何检查一个对象?

感谢。

3 个答案:

答案 0 :(得分:3)

我假设你的目标是移动编译器,因为否则ARC没有被使用,那么这个问题似乎毫无意义。

测试Disposed属性。

  

Disposed是一个只读属性,显示了当前的状态   对象

     

如果已放置对象,则Disposed属性返回True   使用DisposeOf方法。否则,它返回False。

但是,你甚至可能会问这个问题看起来很奇怪。也许你没有以最好的方式解决你的问题。

答案 1 :(得分:0)

在阅读了您的其他问题之后,您似乎正在尝试调试OSX上的内存问题,并且您正试图找出哪个对象已被释放但仍在使用中。

我建议在启用完全调试模式的情况下使用FastMM4。不要忘记将libFastMM_FullDebugMode.dylib与您的项目一起部署,以便使用FastMM4进行调试。如果您尝试访问已释放的对象,则会引发异常。

答案 2 :(得分:0)

在清除对它的所有引用之前,对该类的引用是“活着的”。 如果您不使用像DisposeOf这样的脏方法,或使用弱参考。

最好的方法 - 使用TDictionary。 在构造函数中添加类的地址,并在析构函数中删除它。