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的引用。