通过菜单实现剪贴板操作



我正在开发我的第一个商业Firemonkey应用程序(也是我的第一个任何语言的商业应用程序)。我使用了本机FMX控件和TMSSoftware(TTMSFMXGrid)的一个控件。键盘剪贴板操作 - Ctrl+X,Ctrl + C,Ctrl + V - "开箱即用"。但我希望我的应用程序提供与键盘快捷键具有相同功能的菜单项。

我已经设置了我的程序,以便在为Windows编译时可以看到一个TMenuBar。当为OS X编译时,TMenuBar是不可见的,但会出现一个TMainMenu。为简单起见,我们可以只讨论在 TMenuBar 可见时针对 Windows 进行编译的场景。

对TMenuBar的TMenuItems进行编程以执行剪切,复制和粘贴操作很容易。这不是问题所在。我一直无法弄清楚如何在未选择任何内容(或无关)时禁用剪切和复制菜单项,以及在剪贴板上没有任何内容(或没有任何相关内容)时如何禁用粘贴。

我该怎么做?

(我使用的是柏林 10.1 更新 2。

您可以在此处阅读有关Embarcadero的FMX复制/剪切/粘贴的信息:
多设备应用程序和剪贴板支持

因为你的问题是关于Windows的,所以你应该了解Windows剪贴板的内部结构。良好的开端是Zarko Gajic的文章:
基本剪贴板操作(剪切/复制/粘贴)

还有关于收听剪贴板以接收有关剪贴板内容更改的通知:收听剪贴板:
具有自定义剪贴板格式的剪贴板德尔福间谍

另一篇关于 OS X 和 Windows 中带有 FMX 的剪贴板的好文章:
复制和粘贴 FireMonkey TBitmap 的内容

最新更新