程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 第七章-剪貼板和動態數據交換(一)(2)

第七章-剪貼板和動態數據交換(一)(2)

編輯:Delphi

表 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; 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved