如何从 TFrame 内的事件处理程序关闭 TPopup 中显示的 FMX TFrame
How to close an FMX TFrame shown in a TPopup from event handlers inside the TFrame
我使用通过调用 TPopup.Popup(true);
方法显示的框架。如果框架包含一个设置了 ModalResult
属性 的按钮(例如,mrOK),它会在用户单击时自动关闭。但是我需要在其中 TListBox
的 OnClick
事件中关闭框架。
Frame 没有 Close 方法。
我想避免使用消息发布到父窗体,因为当应用程序移植到 Android 时它可能会导致未来的问题,而且我不想为 [=] 声明 OnClick
事件处理程序15=] 在父窗体中,因为框架可能由多个不同的窗体显示,这会降低父窗体代码的质量,使其变得笨重且难以阅读。
我非常感谢有关如何执行此操作的建议。
当您像此处解释的那样从 TPopUp 继承时 (How to make my own dialog component from Firemonkey TPopUp?) 然后您可以在框架中触发事件时调用 ClosePopup
。
我找到了以下出路。我叫
(GetParentComponent as TPopup).IsOpen:=false;
我使用通过调用 TPopup.Popup(true);
方法显示的框架。如果框架包含一个设置了 ModalResult
属性 的按钮(例如,mrOK),它会在用户单击时自动关闭。但是我需要在其中 TListBox
的 OnClick
事件中关闭框架。
Frame 没有 Close 方法。
我想避免使用消息发布到父窗体,因为当应用程序移植到 Android 时它可能会导致未来的问题,而且我不想为 [=] 声明 OnClick
事件处理程序15=] 在父窗体中,因为框架可能由多个不同的窗体显示,这会降低父窗体代码的质量,使其变得笨重且难以阅读。
我非常感谢有关如何执行此操作的建议。
当您像此处解释的那样从 TPopUp 继承时 (How to make my own dialog component from Firemonkey TPopUp?) 然后您可以在框架中触发事件时调用 ClosePopup
。
我找到了以下出路。我叫
(GetParentComponent as TPopup).IsOpen:=false;