表 7.3 TClipboard的方法
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
方 法 參 數 意 義
─────────────────────────────────────
Clear 無 清除剪貼板的內容
Assign Source:TPersistent 把Source參數指定的對象拷貝到剪貼板,常
用於圖形、圖像對象
Open 無打開剪貼板,阻止其它應用程序改變它的內容
Close 無 關閉打開的剪貼板
SetComponent Source:TPersistent 把部件拷貝到剪貼板
GetComponent Owner 從剪貼板取回一個部件並放置
Parent :TPersistent
SetAsHandle Format:Word 把指定格式數據的句柄交給剪貼板
返回類型:THandle
GetAsHandle Format:Word 返回剪貼板指定格式數據的句柄
返回類型:THandle
HasFormat Format:Word 判斷剪貼板是否擁有給定的格式
返回類型:Boolean
SetTextBuf Buffer:PChar 設置剪貼板的文本內容
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
剪貼板中可能的數據格式如下表。
表 7.4 剪貼板數據格式及其意義
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
數據格式 意 義
──────────────────────────────
CF_TEXT 文本。每行以CF_LF結束,nil標志文本結束
CF_BITMAP Windows位圖
CF_METAFILE Windows元文件
CF_PICTURE TPicture類型的對象
CF_OBJECT 任何TPersistent類型的對象
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
利用TClipboard實現文本的傳輸使用AsText屬性和SetTextBuf方法。
AsText屬性為非控件部件的剪貼板操作提供了方便。如:
Clipboard. AsText := Form1.Caption ;
把Form1的標題拷貝到剪貼板。
Label1.Caption := Clipboard.AsText;
把剪貼板中的文本寫入Label1。
SetTextBuf用於把超過255個字符的字符串拷入剪貼板。
7.1.3 利用剪貼板傳輸圖像
7.1.3.1 拷貝
Image部件上的內容和窗體上的圖形可以直接拷貝到剪貼板。圖像拷貝利用Clipboard的Assign方法。
例如:
Clipboard.Assign(Image1.Picture);
把Image1上的圖像拷貝到剪貼板。
7.1.3.2 剪切
圖像的剪切是首先把圖像拷貝到剪貼板,而後在原位置用空白圖像進行覆蓋。
下面一段程序表示了圖像的剪切。
procedure TForm1.Cut1Click(Sender: TObject);
var
ARect: TRect;
begin
Clipboard.Assign(Image1.Picture);
with Image.Canvas do
begin
CopyMode := cmWhiteness;
ARect := Rect(0, 0, Image.Width, Image.Height);
CopyRect(ARect, Image.Canvas, ARect);
CopyMode := cmSrcCopy;
end;
end;