TClipboard
2019-09-06 23:33:25
供稿:網(wǎng)友
TClipboard封裝了Windows Clipboard。
類關(guān)系 TObject->TPersistent
WindowsClipboard包含對(duì)任何一個(gè)應(yīng)用程序剪切、復(fù)制或粘貼的文本或圖形。TClipboard對(duì)象是WindowsClipboard的一個(gè)對(duì)象包。
不要通過調(diào)用構(gòu)造來實(shí)例化單獨(dú)的TClipboard對(duì)象的全局實(shí)例。當(dāng)允許應(yīng)用程序共享TClipboard對(duì)象的一個(gè)單個(gè)實(shí)例時(shí),使用該全局實(shí)例可以安全避免意外地刪除剪貼板。在調(diào)用Clipboard方法之前,應(yīng)記住在uses語句中應(yīng)包括Clipbrd
Clipboard的屬性提供了關(guān)于Clipboard被“注冊(cè)”格式的處理消息。Clipboard的方法可以進(jìn)行以下操作:
根據(jù)適當(dāng)?shù)母袷将@取的檢索數(shù)據(jù)。
處理引用計(jì)算、打開和關(guān)閉Clipboard。
為Clipboard中的對(duì)象管理和操縱格式。
屬性列表
AsText 表示Clipboard中的當(dāng)前內(nèi)容為一個(gè)字符串
FormatCount 用于指定在Formats數(shù)組屬性的格式數(shù)量
Formats 提供對(duì)Clipboard包含所有格式的變址訪問
方法列表
~TClipboard 釋放與TClipboard對(duì)象有關(guān)的內(nèi)存
Assign 從Clipboard中檢索一對(duì)象或者向Clipboard中復(fù)制一對(duì)象
Clear 刪除Clipboard中的內(nèi)容
Close 用于關(guān)閉Clipboard
GetAsHandle 用于從剪貼板返回指定格式的句柄數(shù)據(jù)
GetComponent 根據(jù)Owne和Parent參數(shù)值從Clipboard中粘貼一組件
GetTextBuf 從Clipboard中檢索文本并復(fù)制到一個(gè)緩沖區(qū)
HasFormat 表示 Clipboard對(duì)象是否包含一個(gè)特定格式
Open 打開Clipboard
SetAsHandle 按給定格式放置作為一個(gè)Windows句柄的數(shù)據(jù)
SetComponent 向Clipboard中復(fù)制一個(gè)組件
SetTextBuf 向Clipboard中寫入一個(gè)文本緩沖區(qū)
TClipboard 創(chuàng)建一個(gè)新的TClipboard對(duì)象
屬性
TClipboard::AsText
__property System::AnsiString AsText = {read=GetAsText,write=SetAsText};
表示Clipboard中的當(dāng)前內(nèi)容為一個(gè)字符串。
使用AsText屬性可以在Clipboard中放置文本和從Clipboard中檢索數(shù)據(jù)。AsText屬性復(fù)制Clipboard中的一個(gè)字符串。將一個(gè)字符串設(shè)定為AsText屬性的數(shù)值。
Clipboard必須包含一個(gè)字符串或者一個(gè)出現(xiàn)的異常。使用HasFormat方法,可以確定Clipboard中是否包含一個(gè)字符串。
TClipboard::FormatCount
__property int FormatCount = {read=GetFormatCount,nodefault};
用于指定在Formats數(shù)組屬性的格式數(shù)量。
使用FormatCount屬性可以查找Clipboard中不同格式類型的數(shù)量,格式類型用于對(duì)當(dāng)前消息進(jìn)行編碼。FormatCount屬性為只讀屬性。
使用HasFormat方法,可以查明Clipboard中的一個(gè)特定格式是否是可用的。
在已一個(gè)特定的格式向剪貼板中寫入消息之前,該格式必須已注冊(cè)。使用TPieture對(duì)象的RegisterClipboardFormat方法,可以注冊(cè)一個(gè)新格式。
TClipboard::Formats
__property Word Formats[int Index] = {read=GetFormats};
提供對(duì)Clipboard包含所有格式的孌址訪問。
使用Formats屬性可以確定用什么格式對(duì)剪貼板中的當(dāng)前消息進(jìn)行編碼。根據(jù)每一個(gè)格式在數(shù)組中的位置,使用Infex參數(shù),可以訪問每一個(gè)格式。當(dāng)從剪貼板中讀取消息時(shí),使用Formats屬性數(shù)組可以為可用多個(gè)方法進(jìn)行編碼的消息選擇最佳的可能編碼方法。
通常,當(dāng)一個(gè)應(yīng)用程序?qū)lipboard進(jìn)行復(fù)制或者剪切內(nèi)容時(shí),將按多種格式放置內(nèi)容。
如果格式在Formats屬性數(shù)組中,則一個(gè)應(yīng)用程序可以在Clipboard中放置一個(gè)特定格式的項(xiàng)目,并且可以按一個(gè)特定格式從 Clipboard中檢索項(xiàng)目。使用HasFirmat方法,可以查明Clipboard中的一個(gè)特定格式是否是可用的。
方法
TClipboard::~TClipboard
__fastcall virtual ~TClipboard(void);
釋放與TClipboard對(duì)象有關(guān)的內(nèi)存。
~TClipboard 釋放與TClipboard對(duì)象有關(guān)的內(nèi)存。不要直接調(diào)用 ~TClipboard。用 delete替代。
TClipboard::Assign
virtual void __fastcall Assign(Classes::TPersistent* Source);
用于從Clipboard中檢索一個(gè)對(duì)象或者向Clipboard中復(fù)制一個(gè)對(duì)象.
使用Assign,可以從 Clipboard中放置圖片和從 Clipboard中檢索圖片。
Source參數(shù)指定的對(duì)象為將被復(fù)制的對(duì)象。例如,下列代碼從一個(gè)名為Bitmapl的位圖對(duì)象中,向Clipboard中復(fù)制位圖。
TClipboard::Assign(Bitmap);
若要從Clipboard中檢索一個(gè)對(duì)象,將該對(duì)象在其內(nèi)的Clipboard賦值給新對(duì)象,也就是,賦值給調(diào)用其Assign方法的對(duì)象。例如,如果一個(gè)位圖在Clipboard中,下列代碼將該位圖自制到一個(gè)名為bitmapl 的位圖對(duì)象中。
Bitmap::Assign(Clipboard);
Formats屬性列出了向Clipboard中復(fù)制一個(gè)對(duì)象的格式類型。圖形對(duì)象如位圖和位圖文件,具有其自身的相應(yīng)格式。使用HasFormat方法??梢源_定剪貼板中的消息是否使用了一個(gè)與其指定對(duì)象相兼容的格式。
TClipboard::Clear
void __fastcall Clear(void);
刪除Clipboard 中的內(nèi)容。
調(diào)用Clear 將清空剪貼板。每當(dāng)向Clipboard中加入數(shù)據(jù)(剪切和復(fù)制操作)時(shí),Clear被自動(dòng)調(diào)用。
TClipboard::Close
void __fastcall Close(void);
如果Clipboard是打開的,則Close用于關(guān)閉Clipboard。當(dāng)完成向Clipboard中加入項(xiàng)目時(shí),調(diào)用Close。在剪貼板被關(guān)閉之前,通過調(diào)用Open方法,Clipboaard可能被多次打開。Open和Close方法都保存一剪貼板已被打開次數(shù)的計(jì)數(shù)器。直到剪貼板被關(guān)閉次數(shù)與已被打開次數(shù)相同時(shí),剪貼板才確實(shí)被關(guān)閉。
TClipboard::GetAsHandle
int __fastcall GetAsHandle(Word Format);
用于從剪貼板返回指定格式的句柄數(shù)據(jù)。
使用GetAsHandle可以利用Windows句柄從Clipboard中檢索數(shù)據(jù)。該句柄不屬于應(yīng)用程序且數(shù)據(jù)將被復(fù)制。
注意:只有當(dāng)Clipboard為打開時(shí)GetAsHandle返回的句柄才是有效的。Clipboard一關(guān)閉,就由Windows重新分配句柄且不再是可存取的。如果與句柄關(guān)聯(lián)的數(shù)據(jù)需要一段時(shí)間復(fù)制數(shù)據(jù),句柄被推薦。
HasFormat方法列出一些作為Format參數(shù)使用的可用格式。此外,應(yīng)用程序能夠定義和注冊(cè)自己的格式。
TClipboard::GetComponent
Classes::TComponent* __fastcall GetComponent(Classes::TComponent* Ower,Classes::TComponent* Parent);
根據(jù)Owner 參數(shù)和Parent的參數(shù)值,從 Chipboerd中粘貼一個(gè)組件。
使用CerComponent可以檢索一個(gè)保存在Chpboard中的組件,指定Owbet參數(shù)作為被檢索組件(通常為一個(gè)窗體)的所有者組件。指定Parent參數(shù)作為組件父體的組件。Owner參數(shù)和Parent 參數(shù)都可以為NULL。
在能夠從Clipboard中讀取一個(gè)類之前,首先必須用Classes 單元通過調(diào)用RegisterClasses方法對(duì)它進(jìn)行注冊(cè)。如果試圖讀取一個(gè)還沒有注冊(cè)的類,將收到一個(gè)EClassNotFound異常。
TClipboard::GetTextBuf
int __fastcall GetTextBuf(char* Buffer,int BufSize);
從Clipboard中檢索文本并自制到一個(gè)緩沖區(qū)。
使用GetTextBuf可以從Clipboard中檢索文本并復(fù)制到指向Buffer參數(shù)的緩沖區(qū)。GetTextBuf復(fù)制由BufSize參數(shù)給定的字符量并返回復(fù)制的字符數(shù)量。
Buffer參數(shù)中文本是一個(gè)空終止的字符串。
TClipboard::HasFormat
bool __fastcall HasFormat(Word Format);
表示Clipboard對(duì)象是否包含一個(gè)特定格式。
使用HasFormat可以查明剪貼板中的消息是否以一個(gè)特定格式進(jìn)行編碼。如果HasFormat為True,則存在格式;如果HasFormat為False,則不存在格式。Clipboard對(duì)象保存Formaats數(shù)組屬性中可用格式的一個(gè)列表。Format參數(shù)可經(jīng)是下表中的數(shù)值。Windows或其他Windows應(yīng)用程序提供了許多的Clipboard格式。定制格式也被注冊(cè)。所有這些都可由HasFormat支持。
TClipboard::Open
void __fastcall Open(void);
打開Clipboard,在關(guān)閉之前可以避免其他應(yīng)用程序修改其內(nèi)容。
向Clipboard中加入一個(gè)單個(gè)項(xiàng)目時(shí),應(yīng)用程序不必調(diào)用open。但當(dāng)向Clipboard中加入一系列項(xiàng)目時(shí),調(diào)用Open可以避免內(nèi)容被每一個(gè)增加項(xiàng)覆蓋。
若要加入多個(gè)項(xiàng)目,聲音Open方法可以避免Clipboard中內(nèi)容被其他應(yīng)用程序覆蓋或修改。
當(dāng)應(yīng)用程序已向Clipboard中加入所有的項(xiàng)目時(shí),將調(diào)用Close方法。
TClipboard::SetAsHandle
void __fastcall SetAsHandle(Word Format,int Value);
按給定格式放置作為一個(gè)Windows句柄的數(shù)據(jù)。
使用SetAsHandle通過使用Windows句柄可以向Clipboard中寫入數(shù)據(jù)。SetAsHandle向Clipboard中寫入由指定句柄(Value參數(shù))表示的消息。一旦應(yīng)用程序向Clipboard給出了保存柄,則由句柄表示的數(shù)值將屬于剪貼切板,而不是應(yīng)用程序。Clipboard將釋放表示的資源。
注意:Hlipboard方法列出一些作不Format參數(shù)使用的可用格式。此外,應(yīng)用程序能夠定義和注冊(cè)自己的格式。
TClipboard::SetComponent
void __fastcall SetComponent(Classes::TComponent* Component);
向Clipboaard中自制一個(gè)組件。
使用SetCompinent可以向Clipboard中自制一個(gè)組件,指定需要復(fù)制的組件作為Component參數(shù)的數(shù)值。
TClipboard::SetTextBuf
void __fastcall SetTextBuf(char* buffer);
向Cllipboard中寫入一個(gè)文本緩沖區(qū)。
使用SetTextBuf可以從一個(gè)緩沖區(qū)中自制文本。Buffer參數(shù)必須指向一個(gè)空終止符的字符串。
TClipboard::TClipboard
__fastcall virtual TClipboard(void);
創(chuàng)建一個(gè)新的TClipboard對(duì)象。
不要直接調(diào)用Tclipboard來創(chuàng)建TClipboard對(duì)象。在運(yùn)行時(shí)用new來創(chuàng)建TClipboard的引用。