我在FMX应用程序中有一个TPanels
列表,如果我点击它,我想释放一个面板。
直接在Onclick处理程序中释放它们不是正确的方法,因为我遇到了访问冲突。而且我不想使用windowsmessages
(在How to free control inside its event handler?和Why does my program crash when I destroy a button in its own OnClick handler?中推荐),因为它是一个firemonkey应用程序,我不知道这些消息在android和mac上是如何工作的。
还有其他解决方案吗?
答案 0 :(得分:8)
将此TFmxObject对象标记为延迟删除。
此方法中的立即行动:
延迟行动:
vPurgatory
)。请注意,该方法Free
(和过程FreeAndNil
)不会在移动平台中移除对象本身:
//在ARC下,实际上并没有调用此方法,因为编译器会进行转换 //调用只是实例变量的零分配,然后调用_InstClear