Windows剪贴板表示从应用程序剪切、复制或粘贴到应用程序的任何文本或图形的容器。本文将向您展示如何使用TClipboard对象在Delphi应用程序中实现剪切复制粘贴功能。
您可能知道,剪贴板一次只能保存一段相同类型的数据进行剪切、复制和粘贴。如果我们以相同的格式将新信息发送到剪贴板,我们将删除以前存在的内容,但即使我们将这些内容粘贴到另一个程序中,剪贴板的内容仍保留在剪贴板中。
为了在我们的应用程序中使用Windows剪贴板,我们必须将ClipBrd单元添加到项目的uses子句中,除非我们限制剪切、复制和粘贴到已经具有内置剪贴板方法支持的组件。这些组件是TEdit、TMemo、TOLEContainer、TDDEServerItem、TDBEdit、TDBImage和TDBMemo。
ClipBrd单元自动表示名为剪贴板的TClipboard对象。我们将使用CutToClipboard、CopyToClipboard、PasteFromClipboard、Clear和HasFormat方法来处理剪贴板操作和文本/图形操作。
为了向剪贴板发送一些文本,使用剪贴板对象的AsText属性。例如,如果我们想将变量SomeStringData中包含的字符串信息发送到剪贴板(清除其中的任何文本),我们将使用以下代码:
uses ClipBrd; ... Clipboard.AsText := SomeStringData_Variable;要从剪贴板检索文本信息,我们将使用
uses ClipBrd; ... SomeStringData_Variable := Clipboard.AsText;注意:如果我们只想将文本从(比如说)编辑组件复制到剪贴板,我们不必将ClipBrd单元包含到uses子句中。TEdit的CopyToClipboard方法将编辑控件中选定的文本以CF_文本格式复制到剪贴板。
procedure TForm1.Button2Click(Sender: TObject) ; begin //the following line will select //ALL the text in the edit control {Edit1.SelectAll;} Edit1.CopyToClipboard; end;要从剪贴板中检索图形图像,Delphi必须知道存储在剪贴板中的图像类型。同样,要将图像传输到剪贴板,应用程序必须告诉剪贴板它正在发送什么类型的图形。下面是Format参数的一些可能值;Windows提供了更多的剪贴板格式。
如果剪贴板中的图像具有正确的格式,则HasFormat方法返回True:
if Clipboard.HasFormat(CF_METAFILEPICT) then ShowMessage('Clipboard has metafile') ;使用Assign方法将图像发送(分配)到剪贴板。例如,以下代码将位图从名为MyBitmap的位图对象复制到剪贴板:
Clipboard.Assign(MyBitmap) ;通常,MyBitmap是TGraphics、TBitmap、TMetafile或TPicture类型的对象。
要从剪贴板检索图像,我们必须:验证剪贴板当前内容的格式,并使用目标对象的Assign方法:
{place one button and one image control on form1} {Prior to executing this code press Alt-PrintScreen key combination} uses clipbrd; ... procedure TForm1.Button1Click(Sender: TObject) ; begin if Clipboard.HasFormat(CF_BITMAP) then Image1.Picture.Bitmap.Assign(Clipboard) ; end;剪贴板以多种格式存储信息,因此我们可以使用不同的格式在应用程序之间传输数据。当使用Delphi的TClipboard类从剪贴板读取信息时,我们仅限于标准的剪贴板格式:文本、图片和图元文件。
假设您在两个不同的Delphi应用程序之间工作;为了在这两个程序之间发送和接收数据,您将如何定义自定义剪贴板格式?为了便于探索,假设您正在尝试编写粘贴菜单项的代码。当剪贴板中没有文本时(作为实例),您希望将其禁用。
由于剪贴板的整个过程都是在幕后进行的,因此没有TClipboard类的方法可以在剪贴板的内容发生某些更改时通知您。其想法是挂接剪贴板通知系统,以便在剪贴板更改时能够访问和响应事件。
为了享受更多的灵活性和功能性,处理剪贴板更改通知和自定义剪贴板格式(侦听剪贴板)是必要的。
...择要复制的文本后,轻按“复制”。复制的文本存储在“剪贴板”上,随时可以粘贴到任何你想要的地方。此剪贴板在后台工作,不可见。值得注意的是,它只能在内存中存储一个项。如果复制其他内容,前面的文本将被删除。...
... 首先,复制和粘贴使用操作系统中不可见的部分,即剪贴板。这是一个很小的存储空间,一次可以容纳一个项目——它可以处理文本、图像甚至文件。 ...
...您将要使用的所有应用程序。他们是这样工作的。 了解剪贴板 复制或剪切某些内容(如文本块、图像或链接)时,Windows会将数据临时存储在称为剪贴板的特殊内存位置。把它想象成一支临时的笔。粘贴复制的信息时,Windows将...
...示终端窗口中的文本并按Ctrl+Shift+C,则会将该文本复制到剪贴板缓冲区中。 Ctrl+Shift+C 可以使用Ctrl+Shift+V将复制的文本粘贴到同一终端窗口或另一终端窗口中。 Ctrl+Shift+V 也可以粘贴到图形应用程序(如gedit)中。但请注意,当...
...键单击上下文菜单,而是按Ctrl+C将突出显示的文本复制到剪贴板。 提示:如果要在将文档复制到剪贴板时完全删除文档中的文本,请单击上下文菜单中的“剪切”或按Ctrl+X。 如何粘贴文本 现在您已经将文本复制到剪贴板,打开...
...那样,microsoftword提供了更多的选项。有一个内置的Office剪贴板,它非常强大,可以选择粘贴内容的格式,等等。下面是它的工作原理。 按所需方式粘贴文本 使用Ctrl+V粘贴文本时,Word默认同时粘贴文本和应用于该文本的任何格...
...en键将整个屏幕(或Alt+Print Screen仅用于活动窗口)复制到剪贴板,以便将其粘贴到某个位置,或者启动剪报工具,用它来剪报部分屏幕。 在2018年10月的更新中,另一个键盘快捷键打开了一个新的屏幕截图工具,可以将部分屏幕...
您的计算机的“剪贴板”是您剪切或复制的内容临时存储的地方。微软Office有自己的剪贴板,但是,它更强大。 Windows剪贴板仅存储您复制的最后一个项目。但是,Office剪贴板最多可存储来自Office文档和其他程序的24个文本和图...