AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > Delphi

第七章 剪贴板和动态数据交换(一)

51自学网 http://www.51zixue.net

 

   表 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部件上的内容和窗体上的图形可以直接拷贝到剪贴板。图像拷贝利用ClipboardAssign方法。

例如: 

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; 

 
 

上一篇:第七章 剪贴板和动态数据交换(二)  下一篇:第六章 文件管理(三)