delphi – 如何在剪贴板上可靠地检测RICHTEXT格式?

delphi – 如何在剪贴板上可靠地检测RICHTEXT格式?,第1张

概述Embarcadero RAD Studio VCL具有TClipboard.HasFormat方法,其用途例如: Clipboard.HasFormat(CF_TEXT)或Clipboard.HasFormat(CF_BITMAP)等. 但我没有找到任何支持的CF_RTF或CF_RICHTEXT格式描述符,它在剪贴板中指示了富文本格式. 所以我在Microsoft WordPad中创建了一些格式 Embarcadero RAD Studio VCL具有TClipboard.HasFormat方法,其用途例如: Clipboard.HasFormat(CF_TEXT)或Clipboard.HasFormat(CF_BITMAP)等.

但我没有找到任何支持的CF_RTF或CF_RICHTEXT格式描述符,它在剪贴板中指示了富文本格式.

所以我在Microsoft WordPad中创建了一些格式化文本并将其复制到剪贴板.然后我用剪贴板间谍程序来检查剪贴板上的格式:

这列出了3种RichText格式,格式描述符为C078,C16B和C1A5.

这些格式描述符是普遍的还是依赖于单个系统或当前情况?即,我通常可以使用Clipboard.HasFormat($C078)来检测剪贴板上的任何RichText格式吗?还是有另一种方法吗?

解决方法

Can I generally use Clipboard.HasFormat($C078) to detect any
RichText format on the clipboard?

不,您需要通过RegisterClipboardFormat功能注册RTF剪贴板格式.返回值由系统生成,可能会有所不同.

Registers a new clipboard format. This format can then be used as a
valID clipboard format.

If a registered format with the specifIEd name already exists,a new
format is not registered and the return value IDentifIEs the existing
format. This enables more than one application to copy and paste data
using the same registered clipboard format.

var  CF_RTF: UINT;...initialization  CF_RTF := RegisterClipboardFormat('Rich Text Format');

然后检查:

if Clipboard.HasFormat(CF_RTF) then ...{ or // if windows.IsClipboardFormatAvailable(CF_RTF) then ... }

编辑:阅读文档后:How to Use Rich Edit Clipboard Operations

常量CF_RTF已在RichEdit单元中声明为:

CF_RTF                 = 'Rich Text Format';CF_RTFNOOBJs           = 'Rich Text Format Without Objects'; CF_RETEXTOBJ           = 'RichEdit Text and Objects';

因此,对RegisterClipboardFormat的返回值使用其他命名可能更好一点.例如

uses RichEdit;...var  CF_RICHTEXT: UINT;...initialization  CF_RICHTEXT := RegisterClipboardFormat(RichEdit.CF_RTF);

和:

if Clipboard.HasFormat(CF_RICHTEXT) then ...

注意:已经有一些保留的系统剪贴板格式,如CF_TEXT(= 1),CF_BITMAP(= 2)等……但“CF_RTF”或“CF_RICHTEXT”不是其中之一.它是RICHEDIT通用控件使用的自定义格式,并通过RegisterClipboardFormat注册,如前所述.

总结

以上是内存溢出为你收集整理的delphi – 如何在剪贴板上可靠地检测RICHTEXT格式?全部内容,希望文章能够帮你解决delphi – 如何在剪贴板上可靠地检测RICHTEXT格式?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1268110.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存