gpt4 book ai didi

delphi - 通过菜单实现剪贴板操作

转载 作者:行者123 更新时间:2023-12-02 03:17:46 33 4
gpt4 key购买 nike

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

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

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

我怎样才能做到这一点?

(我正在使用 Berlin 10.1 Update 2。)

最佳答案

您可以在此处阅读 Embarcadero 的有关使用 FMX 进行复制/剪切/粘贴的信息:
Multi-Device Apps and Clipboard Support

因为您的问题是关于 Windows,现在您应该了解 Windows 剪贴板的内部结构。 Zarko Gajic 的文章是一个好的开始:
Basic Clipboard Operations (Cut/Copy/Paste)

还有关于监听剪贴板以重新接收有关剪贴板内容更改的通知:
Listening to the Clipboard: Clipboard Delphi Spy with Custom Clipboard Formats

另一篇关于使用 FMX 在 OS X 和 Windows 中使用剪贴板的好文章:
Copying and pasting the contents of a FireMonkey TBitmap

关于delphi - 通过菜单实现剪贴板操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43077497/

33 4 0