如何在 Delphi 的 IDE 上下文菜单中添加菜单项

Posted

技术标签:

【中文标题】如何在 Delphi 的 IDE 上下文菜单中添加菜单项【英文标题】:How to add a menu item in Delphi's IDE context menu 【发布时间】:2015-02-17 06:27:19 【问题描述】:

我正在尝试在 Delphi 的 IDE 中添加一些功能以方便自己。我发现了如何使用 INTAServices.MainMenu 将菜单项添加到 IDE 主菜单,还能够创建一些自定义组件编辑器,因此我可以在组件的上下文菜单中拥有自己的菜单项。但我想在源代码编辑器的上下文菜单中添加一些功能。 我想在源编辑器中选择一些文本并右键单击它,这样我就可以按照我需要的方式转换它,使用 IOTAEditorServices.TopView.buffer.EditBlock.text 和 IOTAEditorServices.TopView.Buffer.EditPosition.InsertText(newText); 这可能吗?或者最简单的方法是使用主菜单项的快捷方式?

谢谢。

【问题讨论】:

我可能会查看 gexperts 和 cnpack 的来源以获得想法 是的,cnpack 确实在那里添加了菜单,但我需要几天时间才能找到方法。不过还是谢谢。 天?最多 30 分钟。 您可以搜索有关 Open Tools API (OTA) 的信息。这就是您可以扩展 Delphi IDE(包括菜单)功能的方式。 GExperts 是如何扩展 IDE 的示例。旧版本可用,包括源代码。查看并了解它们的工作原理。 你们为什么要写“google it”或“search information about it”之类的cmets?你相信我没有吗??如果您不知道答案,请不要回答。 OTA 被描述为“非常好”,就像 Delphi 中的大多数东西一样。 GExperts 不会在源代码编辑器上下文菜单中添加菜单,或者至少我没有找到它们。 CNPack 对我的理解来说是一个巨大的项目,而且过于复杂,无法仅仅看它并理解整个画面。我赌 10 美元,大卫在 30 分钟内找不到我要的 2 行代码。 【参考方案1】:

实际上是一行代码: myPopup := TPopupMenu(editorServices.TopView.GetEditWindow.Form.FindComponent('EditorLocalMenu'));

【讨论】:

我已经到了 INTAEditWindow.Form 但不知道下一步该去哪里。您是如何找到组件的名称的?迭代组件并将它们的名称写入日志? as演员会更好。 经过大量搜索,我找到了这个:link,还有这个:link PS:圣诞快乐,新年快乐等:)

以上是关于如何在 Delphi 的 IDE 上下文菜单中添加菜单项的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Delphi Form Designer 中为自定义组件添加上下文菜单操作?

如何在 Delphi XE2 中将菜单项添加到 Mac OS Finder

Delphi IDE Menu integration - INTAServices

Delphi在Windows资源管理器中右键单击添加菜单项

为啥我的 Delphi 2006 应用程序的任务栏按钮上下文菜单不完整?

在 Delphi 2007 中丢失了一些调试功能