在表单中嵌入 Menu/PopupMenu 或 TListItems

Embed Menu/PopupMenu or TListItems on a form

有什么方法可以直接在窗体上嵌入一个TPopupMenu,就好像它是一个始终打开的面板一样?或者可能只是 TMenuItems。

不,无法在表单中嵌入菜单。部分原因是菜单不是您可以轻松操作的普通 window。

所以你需要找到一个不同的解决方案。您可以选择的选项有很多:

  1. 使用 TToolBar:

    它看起来不是特别现代,而且开箱即用,但您无法对外观进行太多控制。另外,我不知道这个解决方案到底有多稳健。我很多年前就停止使用工具栏了。

  2. 使用 TCheckListBox:

    在这种情况下,我建议您创建一个子类 TCheckListBoxEx,如果您 double-click 它的标题,它会切换一个项目。

  3. 创建自定义控件:

    如果它是关于重要应用程序中的中央 GUI,这就是我要做的,因为这样您就可以完全控制外观和行为,并可以使其真正健壮​​。我在工作中做了一个现代的这样的菜单,但目前我在家所以我不能给你看。然而,这是我十多年前为一个爱好项目制作的菜单:

  4. 如果你不需要像控件一样把菜单附加到窗体上,而只需要它在你select其中一个项目时不关闭,有( hacky)实现这一目标的方法。但那是一个不同的Q.