【发布时间】:2019-10-25 22:32:19
【问题描述】:
我有一个TForm,其中有两个TMemo 对象和一个TPopupMenu。两个TMemos 都使用相同的TPopupMenu。
弹出菜单有一个用于“清除”备忘录的项目,通过使用TAction。
我的问题是,当单击TMemos 之一上的菜单项时,我如何确定哪个TMemo 是显示TPopupMenu 的那个?
我在TAction的执行函数中有如下代码:
TAction* action = dynamic_cast<TAction*>(Sender);
TMenuItem* item = dynamic_cast<TMenuItem*>(action->ActionComponent);
if(item)
{
if(dynamic_cast<TMemo*>(item->Owner))
{
dynamic_cast<TMemo*>(item->Owner) -> Clear();
}
}
但是TMenuItem 的所有者不是TMemo。
有什么提示吗?我希望避免不得不使用两个不同的TPopupMenus。
【问题讨论】:
-
TPopupMenu.PopupComponent应该会有所帮助。Owner根本没有帮助,因为它只是告诉你是什么负责释放菜单本身,并且将成为它被丢弃的形式。
标签: c++builder vcl