如何在自己的事件中释放控件?

Ryn*_*ald 4 delphi free events controls firemonkey

我有一个TPanelsFMX应用程序的列表,如果我点击它,我想释放一个面板.

直接在Onclick处理程序中释放它们不是正确的方法,因为我遇到了访问冲突.而且我不希望使用windowsmessages(在建议如何释放它的事件处理程序内部控制?为什么我的程序崩溃时,我毁掉了自己的onclick处理?按钮),因为它是一个firemonkey应用程序,我不知道如何这些消息适用于android和mac.

还有其他解决方案吗?

kam*_*ami 8

用途myObject.Release:

标记此TFmxObject对象以进行延迟删除.

此方法中的立即操作:

  • 设置Parent = nil
  • 将对象插入延迟删除列表

延迟行动:

  • 列表中的自由对象(vPurgatory).

请记住,该方法Free(和过程FreeAndNil)不会在移动平台中删除对象本身:

//在ARC下,实际上并没有调用此方法,因为编译器将//调用转换为仅仅为实例变量的nil赋值,然后调用_InstClear