知识大全 使用剪切板[3]:SetComponent、GetComponent

Posted

篇首语:寸阳分阴须爱惜,休负春色与时光。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用剪切板[3]:SetComponent、GetComponent相关的知识,希望对你有一定的参考价值。

使用剪切板[3]:SetComponent、GetComponent  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  本例演示把一个组件(TEdit)放入剪切板 又取出(放到一个 TPanel 上)的过程

  放入剪切板的方法是个过程: SetComponent(要放入的组件);

  取出的方法是个函数: GetComponent(指定属主 指定父窗口): 函数返回取出的组件的句柄

  取出以前 最好要判断一下当前剪切板中是不是个组件: HasFormat(CF_PONENT);

  取出以前还必须要注册要取出的组件类 譬如: RegisterClasses([TEdit]);

  准备工作: 在窗体上添加 TEdit TPanel 和三个按钮

  本例效果图:

  

  unit Unit ;

  interface

  uses Windows  Messages  SysUtils  Variants  Classes  Graphics  Controls  Forms  Dialogs  StdCtrls  ExtCtrls;

  type TForm  = class(TForm)  Button : TButton;  Button : TButton;  Button : TButton;  Edit : TEdit;  Panel : TPanel;  procedure Button Click(Sender: TObject);  procedure Button Click(Sender: TObject);  procedure Button Click(Sender: TObject); end;

  var Form : TForm ;

  implementation

  $R * dfm

  uses Clipbrd;

  var obj: TComponent; 用于接受 GetComponent 的返回值

  procedure TForm Button Click(Sender: TObject);begin Clipboard SetComponent(Edit ); TButton(Sender) Caption :=  复制 ;end;

  procedure TForm Button Click(Sender: TObject);begin RegisterClasses([TEdit]); if Clipboard HasFormat(CF_PONENT) then  obj := Clipboard GetComponent(nil  Panel ); TButton(Sender) Caption :=  粘贴 ;end;

  procedure TForm Button Click(Sender: TObject);begin if Assigned(obj) then obj Free; TButton(Sender) Caption :=  删除 ;end;

  一般情况下 应该把 RegisterClasses() 过程提前放置(起码可以避免反复执行) 譬如在 Form OnCreate 事件中

  大家好像都习惯再提前到 initialization 程序修改如下 unit Unit ;

  interface

  uses Windows  Messages  SysUtils  Variants  Classes  Graphics  Controls  Forms  Dialogs  StdCtrls  ExtCtrls;

  type TForm  = class(TForm)  Button : TButton;  Button : TButton;  Button : TButton;  Edit : TEdit;  Panel : TPanel;  procedure Button Click(Sender: TObject);  procedure Button Click(Sender: TObject);  procedure Button Click(Sender: TObject); end;

  var Form : TForm ;

  implementation

  $R * dfm

  uses Clipbrd;

  var obj: TComponent;

  procedure TForm Button Click(Sender: TObject);begin Clipboard SetComponent(Edit ); TButton(Sender) Caption :=  复制 ;end;

  procedure TForm Button Click(Sender: TObject);begin if Clipboard HasFormat(CF_PONENT) then  obj := Clipboard GetComponent(nil  Panel ); TButton(Sender) Caption :=  粘贴 ;end;

  procedure TForm Button Click(Sender: TObject);begin if Assigned(obj) then obj Free; TButton(Sender) Caption :=  删除 ;end;

  initialization RegisterClasses([TEdit]);

  end     另外 关于剪切板中格式的问题还没有详谈 这里有来了一个 CF_PONENT

  Windows 系统已经定义了十几种剪切板的格式常数 譬如 CF_BITMAP CF_TEXT 等等

cha138/Article/program/Delphi/201311/8415

相关参考

知识大全 js复制到剪切板的实例方法

这篇文章介绍了复制到剪切板js代码有需要的朋友可以参考需要 复制代码代码如下:cha138/Article/program/Java/JSP/201311/20557

知识大全 使用剪切板[4]:如果把子控件一起复制?

  如果连同子控件一起复制到剪切板需要定义一个新类型  譬如在一个TPanel中包含一个TEdit在复制TPanel时若要连同TEdit一起复制需要重新从TPanel中继承出一个类来(譬如是TMyPa

知识大全 linux shell命令的常用快捷键

Ctrl+a切换到命令行开始Ctrl+e切换到命令行末尾Ctrl+l清除屏幕内容Ctrl+u清除剪切光标之前的内容Ctrl+k剪切清除光标之后的内容Ctrl+y复制剪切板里的内容Ctrl+h类似于退格

剪切力Shear

引起一个固体的不同部分如一付牌那样相互滑动的力。每单位面积上的剪切力称为剪切应力。它用每平方英寸上若干磅或每平方米上多少牛顿来计算。剪切应力沿一个面的切线方向或平行于它起作用,沿此面一个固体将因剪切力

旋流剪切气泡曝气技术

旋流剪切气泡曝气技术适用范围适用于活性污泥法、生物膜法、SBR及其变型工艺以及MBR等新建污水厂,也可用于老污水厂技术改造与更新。基本原理旋流剪切气泡曝气器抛开微孔曝气、小孔截留思路,集成微循环反应和

旋流剪切气泡曝气技术

旋流剪切气泡曝气技术适用范围适用于活性污泥法、生物膜法、SBR及其变型工艺以及MBR等新建污水厂,也可用于老污水厂技术改造与更新。基本原理旋流剪切气泡曝气器抛开微孔曝气、小孔截留思路,集成微循环反应和

旋流剪切气泡曝气技术

旋流剪切气泡曝气技术适用范围适用于活性污泥法、生物膜法、SBR及其变型工艺以及MBR等新建污水厂,也可用于老污水厂技术改造与更新。基本原理旋流剪切气泡曝气器抛开微孔曝气、小孔截留思路,集成微循环反应和

知识大全 photoshop怎么剪切图片和保存?

photoshop怎么剪切图片和保存?1.用PS打开要处理的图片2.按下鼠标左键并拖动鼠标选择你要剪切的部分,这部分会用虚线框起来,然后按键盘ctrl+X3.选择PS上面的菜单:文件->新建,弹

知识大全 当前页禁止复制粘贴截屏代码小集

本文为大家详细介绍下禁止截屏通过清除剪切板实现禁止复制禁止右键菜单禁止网页另存为等等感兴趣的朋友可以参考下哈希望对大家有所帮助 复制代码代码如下:cha138/Article/pr

知识大全 按钮完成复制和剪切功能

functioncopy(ob)varobj=findObj(ob);if(obj) objselect();js=objcreateTextRange();jsexecCommand("C