TClipboard
2019-09-06 23:33:25
供稿:网友
TClipboard封装了Windows Clipboard。
类关系 TObject->TPersistent
WindowsClipboard包含对任何一个应用程序剪切、复制或粘贴的文本或图形。TClipboard对象是WindowsClipboard的一个对象包。
不要通过调用构造来实例化单独的TClipboard对象的全局实例。当允许应用程序共享TClipboard对象的一个单个实例时,使用该全局实例可以安全避免意外地删除剪贴板。在调用Clipboard方法之前,应记住在uses语句中应包括Clipbrd
Clipboard的属性提供了关于Clipboard被“注册”格式的处理消息。Clipboard的方法可以进行以下操作:
根据适当的格式获取的检索数据。
处理引用计算、打开和关闭Clipboard。
为Clipboard中的对象管理和操纵格式。
属性列表
AsText 表示Clipboard中的当前内容为一个字符串
FormatCount 用于指定在Formats数组属性的格式数量
Formats 提供对Clipboard包含所有格式的变址访问
方法列表
~TClipboard 释放与TClipboard对象有关的内存
Assign 从Clipboard中检索一对象或者向Clipboard中复制一对象
Clear 删除Clipboard中的内容
Close 用于关闭Clipboard
GetAsHandle 用于从剪贴板返回指定格式的句柄数据
GetComponent 根据Owne和Parent参数值从Clipboard中粘贴一组件
GetTextBuf 从Clipboard中检索文本并复制到一个缓冲区
HasFormat 表示 Clipboard对象是否包含一个特定格式
Open 打开Clipboard
SetAsHandle 按给定格式放置作为一个Windows句柄的数据
SetComponent 向Clipboard中复制一个组件
SetTextBuf 向Clipboard中写入一个文本缓冲区
TClipboard 创建一个新的TClipboard对象
属性
TClipboard::AsText
__property System::AnsiString AsText = {read=GetAsText,write=SetAsText};
表示Clipboard中的当前内容为一个字符串。
使用AsText属性可以在Clipboard中放置文本和从Clipboard中检索数据。AsText属性复制Clipboard中的一个字符串。将一个字符串设定为AsText属性的数值。
Clipboard必须包含一个字符串或者一个出现的异常。使用HasFormat方法,可以确定Clipboard中是否包含一个字符串。
TClipboard::FormatCount
__property int FormatCount = {read=GetFormatCount,nodefault};
用于指定在Formats数组属性的格式数量。
使用FormatCount属性可以查找Clipboard中不同格式类型的数量,格式类型用于对当前消息进行编码。FormatCount属性为只读属性。
使用HasFormat方法,可以查明Clipboard中的一个特定格式是否是可用的。
在已一个特定的格式向剪贴板中写入消息之前,该格式必须已注册。使用TPieture对象的RegisterClipboardFormat方法,可以注册一个新格式。
TClipboard::Formats
__property Word Formats[int Index] = {read=GetFormats};
提供对Clipboard包含所有格式的娈址访问。
使用Formats属性可以确定用什么格式对剪贴板中的当前消息进行编码。根据每一个格式在数组中的位置,使用Infex参数,可以访问每一个格式。当从剪贴板中读取消息时,使用Formats属性数组可以为可用多个方法进行编码的消息选择最佳的可能编码方法。
通常,当一个应用程序对Clipboard进行复制或者剪切内容时,将按多种格式放置内容。
如果格式在Formats属性数组中,则一个应用程序可以在Clipboard中放置一个特定格式的项目,并且可以按一个特定格式从 Clipboard中检索项目。使用HasFirmat方法,可以查明Clipboard中的一个特定格式是否是可用的。
方法
TClipboard::~TClipboard
__fastcall virtual ~TClipboard(void);
释放与TClipboard对象有关的内存。
~TClipboard 释放与TClipboard对象有关的内存。不要直接调用 ~TClipboard。用 delete替代。
TClipboard::Assign
virtual void __fastcall Assign(Classes::TPersistent* Source);
用于从Clipboard中检索一个对象或者向Clipboard中复制一个对象.
使用Assign,可以从 Clipboard中放置图片和从 Clipboard中检索图片。
Source参数指定的对象为将被复制的对象。例如,下列代码从一个名为Bitmapl的位图对象中,向Clipboard中复制位图。
TClipboard::Assign(Bitmap);
若要从Clipboard中检索一个对象,将该对象在其内的Clipboard赋值给新对象,也就是,赋值给调用其Assign方法的对象。例如,如果一个位图在Clipboard中,下列代码将该位图自制到一个名为bitmapl 的位图对象中。
Bitmap::Assign(Clipboard);
Formats属性列出了向Clipboard中复制一个对象的格式类型。图形对象如位图和位图文件,具有其自身的相应格式。使用HasFormat方法。可以确定剪贴板中的消息是否使用了一个与其指定对象相兼容的格式。
TClipboard::Clear
void __fastcall Clear(void);
删除Clipboard 中的内容。
调用Clear 将清空剪贴板。每当向Clipboard中加入数据(剪切和复制操作)时,Clear被自动调用。
TClipboard::Close
void __fastcall Close(void);
如果Clipboard是打开的,则Close用于关闭Clipboard。当完成向Clipboard中加入项目时,调用Close。在剪贴板被关闭之前,通过调用Open方法,Clipboaard可能被多次打开。Open和Close方法都保存一剪贴板已被打开次数的计数器。直到剪贴板被关闭次数与已被打开次数相同时,剪贴板才确实被关闭。
TClipboard::GetAsHandle
int __fastcall GetAsHandle(Word Format);
用于从剪贴板返回指定格式的句柄数据。
使用GetAsHandle可以利用Windows句柄从Clipboard中检索数据。该句柄不属于应用程序且数据将被复制。
注意:只有当Clipboard为打开时GetAsHandle返回的句柄才是有效的。Clipboard一关闭,就由Windows重新分配句柄且不再是可存取的。如果与句柄关联的数据需要一段时间复制数据,句柄被推荐。
HasFormat方法列出一些作为Format参数使用的可用格式。此外,应用程序能够定义和注册自己的格式。
TClipboard::GetComponent
Classes::TComponent* __fastcall GetComponent(Classes::TComponent* Ower,Classes::TComponent* Parent);
根据Owner 参数和Parent的参数值,从 Chipboerd中粘贴一个组件。
使用CerComponent可以检索一个保存在Chpboard中的组件,指定Owbet参数作为被检索组件(通常为一个窗体)的所有者组件。指定Parent参数作为组件父体的组件。Owner参数和Parent 参数都可以为NULL。
在能够从Clipboard中读取一个类之前,首先必须用Classes 单元通过调用RegisterClasses方法对它进行注册。如果试图读取一个还没有注册的类,将收到一个EClassNotFound异常。
TClipboard::GetTextBuf
int __fastcall GetTextBuf(char* Buffer,int BufSize);
从Clipboard中检索文本并自制到一个缓冲区。
使用GetTextBuf可以从Clipboard中检索文本并复制到指向Buffer参数的缓冲区。GetTextBuf复制由BufSize参数给定的字符量并返回复制的字符数量。
Buffer参数中文本是一个空终止的字符串。
TClipboard::HasFormat
bool __fastcall HasFormat(Word Format);
表示Clipboard对象是否包含一个特定格式。
使用HasFormat可以查明剪贴板中的消息是否以一个特定格式进行编码。如果HasFormat为True,则存在格式;如果HasFormat为False,则不存在格式。Clipboard对象保存Formaats数组属性中可用格式的一个列表。Format参数可经是下表中的数值。Windows或其他Windows应用程序提供了许多的Clipboard格式。定制格式也被注册。所有这些都可由HasFormat支持。
TClipboard::Open
void __fastcall Open(void);
打开Clipboard,在关闭之前可以避免其他应用程序修改其内容。
向Clipboard中加入一个单个项目时,应用程序不必调用open。但当向Clipboard中加入一系列项目时,调用Open可以避免内容被每一个增加项覆盖。
若要加入多个项目,声音Open方法可以避免Clipboard中内容被其他应用程序覆盖或修改。
当应用程序已向Clipboard中加入所有的项目时,将调用Close方法。
TClipboard::SetAsHandle
void __fastcall SetAsHandle(Word Format,int Value);
按给定格式放置作为一个Windows句柄的数据。
使用SetAsHandle通过使用Windows句柄可以向Clipboard中写入数据。SetAsHandle向Clipboard中写入由指定句柄(Value参数)表示的消息。一旦应用程序向Clipboard给出了保存柄,则由句柄表示的数值将属于剪贴切板,而不是应用程序。Clipboard将释放表示的资源。
注意:Hlipboard方法列出一些作不Format参数使用的可用格式。此外,应用程序能够定义和注册自己的格式。
TClipboard::SetComponent
void __fastcall SetComponent(Classes::TComponent* Component);
向Clipboaard中自制一个组件。
使用SetCompinent可以向Clipboard中自制一个组件,指定需要复制的组件作为Component参数的数值。
TClipboard::SetTextBuf
void __fastcall SetTextBuf(char* buffer);
向Cllipboard中写入一个文本缓冲区。
使用SetTextBuf可以从一个缓冲区中自制文本。Buffer参数必须指向一个空终止符的字符串。
TClipboard::TClipboard
__fastcall virtual TClipboard(void);
创建一个新的TClipboard对象。
不要直接调用Tclipboard来创建TClipboard对象。在运行时用new来创建TClipboard的引用。