如何在自己的事件中释放控件?
How to free a control in its own event?
我在 FMX 应用程序中有一个 TPanels
的列表,如果我单击它,我想释放一个面板。
直接在 Onclick-handler 中释放它们不是正确的方法,因为我遇到了访问冲突。而且我不想使用 windowsmessages
(在 How to free control inside its event handler? and Why does my program crash when I destroy a button in its own OnClick handler? 中推荐),因为它是一个 firemonkey 应用程序,我不知道这些消息如何在 android 和 mac 上工作。
还有其他解决方案吗?
Marks this TFmxObject object for delayed deletion.
此方法中的立即操作:
- 设置父级 = nil
- 将对象插入延迟删除列表
延迟行动:
- 从列表 (
vPurgatory
) 中释放对象。
请记住,该方法 Free
(和过程 FreeAndNil
)不会删除移动平台中的对象本身:
// under ARC, this method isn't actually called since the compiler translates
// the call to be a mere nil assignment to the instance variable, which then calls _InstClear
我在 FMX 应用程序中有一个 TPanels
的列表,如果我单击它,我想释放一个面板。
直接在 Onclick-handler 中释放它们不是正确的方法,因为我遇到了访问冲突。而且我不想使用 windowsmessages
(在 How to free control inside its event handler? and Why does my program crash when I destroy a button in its own OnClick handler? 中推荐),因为它是一个 firemonkey 应用程序,我不知道这些消息如何在 android 和 mac 上工作。
还有其他解决方案吗?
Marks this TFmxObject object for delayed deletion.
此方法中的立即操作:
- 设置父级 = nil
- 将对象插入延迟删除列表
延迟行动:
- 从列表 (
vPurgatory
) 中释放对象。
请记住,该方法 Free
(和过程 FreeAndNil
)不会删除移动平台中的对象本身:
// under ARC, this method isn't actually called since the compiler translates // the call to be a mere nil assignment to the instance variable, which then calls _InstClear