2010-04-14 64 views
4

我有一个带有TPopupMenu的Delphi 2007 VCL TPanel。面板上有一些TEdit控件。编辑继承父面板的弹出式菜单。我不想让这个弹出框继承,所以编辑会显示默认的Windows TEdit弹出式菜单,包括复制,剪切,粘贴等,但还没有找到一种方法。似乎没有“ParentPopupMenu”类型属性来设置哪些控件从父组件继承它。从继承父级弹出菜单中停止VCL子控件

回答

5

尝试将PopupMenu的AutoPopup属性设置为False,然后在需要时手动弹出菜单(因为在TPanel的OnContextMenu事件中)。

+3

谢谢,这个OnContextPopup代码似乎工作: var 控制:TControl; 开始 控制:= FindVCLWindow(Mouse.CursorPos);如果Control = MyPanel,则开始 MyMenu.Popup(Mouse.CursorPos.X,Mouse.CursorPos.Y); 处理:=真; 结束; 结束; – Anagoge 2010-04-14 04:22:03

4

这是QC#54286: Parent-PopupMenu overrides standard context menu。安德烈亚斯豪斯拉登的VCL Fix Pack解决了这个问题,所以它的工作方式就像你期待的那样。

+0

感谢您的链接。很高兴知道我并不孤单考虑这个错误。希望Embarcadero最终会同意。我决定采用AutoPopup修复程序,因为我想要最简单的修复方法,而且我只需要一种修复方法。 – Anagoge 2010-04-14 04:20:43