文档章节

使用剪切板[4]: 如果把子控件一起复制? - 同时回复 ghd2004 的问题

涂孟超
 涂孟超
发布于 2014/09/26 15:35
字数 277
阅读 2
收藏 0
点赞 0
评论 0
如果连同子控件一起复制到剪切板, 需要定义一个新类型.

譬如在一个 TPanel 中包含一个 TEdit; 在复制 TPanel 时, 若要连同 TEdit 一起复制, 需要重新从 TPanel 中继承出一个类来(譬如是 TMyPanel), 把 TEdit 包含在新的类中.

运行效果图:



TMyPanel 类的单元:
unit MyPanel;

interface

uses Classes, StdCtrls, ExtCtrls;

type
  TMyPanel = class(TPanel)
    Edit1: TEdit; 
    constructor Create(AOwner: TComponent); override;
  end;

implementation

{ TMyPanel }

constructor TMyPanel.Create(AOwner: TComponent);
begin
  inherited;
  Edit1 := TEdit.Create(Self);
  Edit1.Parent := Self;
  Edit1.Left := 10;
  Edit1.Top := 10;
  RegisterClasses([TMyPanel]); {在这里就给注册了}
end;

end.

 
 
 
 
 

 

 

  
测试单元:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses Clipbrd, MyPanel;

var
  obj: TComponent;
  pnl: TMyPanel;

procedure TForm1.FormCreate(Sender: TObject);
begin
  pnl := TMyPanel.Create(Self);
  pnl.Parent := Self;
  pnl.Edit1.Text := '一起被复制';

  Button1.Caption := '复制';
  Button2.Caption := '粘贴';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Clipboard.SetComponent(pnl);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if Clipboard.HasFormat(CF_COMPONENT) then
  begin
    obj := Clipboard.GetComponent(Self, Self);
    TMypanel(obj).Left := 20;
    TMypanel(obj).Top := 60;
  end;
end;

end.

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/04/04/1137617.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
iOS剪切板UIPasteboard开发应用解析

iOS剪切板UIPasteboard开发应用解析 一、自带剪切板操作的原生UI控件 在iOS的UI系统中,有3个控件自带剪切板操作,分别是UITextField、UITextView与UIWebView。在这些控件的文字交互处进行长...

珲少 ⋅ 2016/04/06 ⋅ 0

vi的复制粘贴命令

vi的复制粘贴命令 2015-08-09 13:29 1426人阅读 评论(1) 收藏 举报 分类: linux(4) vi编辑器有3种模式:命令模式、输入模式、末行模式。掌握这三种模式十分重要:   命令模式:vi启动后...

片刻 ⋅ 2015/12/23 ⋅ 0

Navi.Soft31.开发工具(含下载地址)

1系统简介 1.1功能简述 在软件开发过程中,我们需要经常对字符串、文件、数据库操作。有时需要浏览Json格式串,有时需要浏览Xml格式串,有时需要读取txt或excel文件,有时需要对数据库访问。本...

小特工作室 ⋅ 2017/11/02 ⋅ 0

mfc剪切板总结

HANDLE SetClipboardData( UINT uFormat, HANDLE hMem); Parameters 格式: [in] Unsigned integer that specifies a clipboard format. This parameter can be a registered format or any ......

长平狐 ⋅ 2012/10/08 ⋅ 0

CoLT

通过使用 CoLT,复制超链接文字或者同时复制超链接及其文字(以你指定的格式)将变得更为容易。 CoLT 在浏览器的右键菜单中增加了两个菜单项,只有右键点击一个超链接的时候才会看到。“复制...

匿名 ⋅ 2008/09/19 ⋅ 0

iOS系统菜单控制器UIMenuController使用简介

iOS系统菜单控制器UIMenuController使用简介 一、引言 在许多iOS应用中,当用户进行某文字或图片区域的长按操作时,都会弹出一个系统菜单控件,用户可以通过操作菜单控件上的按钮进行数据的复...

珲少 ⋅ 2016/04/06 ⋅ 0

jquery+flash(zclip)实现点击复制到剪切板

jQuery-zclip是一个复制内容到剪贴板的jQuery插件,使用它我们不用考虑不同浏览器和浏览器版本之间的兼容问题。jQuery-zclip插件需要Flash的支持,使用时记得电脑安装Adobe Flash Player。 ...

东子 ⋅ 2014/09/20 ⋅ 2

Python3 初学实践案例(6)终极 CLI 密码生成程序实现

Python3 初学实践案例(6)终极 CLI 密码生成程序实现 在前面一章的学习中,我已经完成了一个一定扔出 6 的生成密码算法实现。但是只能将生成的密码输出到终端,并不能够将密码保存到文件,这...

FungLeo ⋅ 2017/12/19 ⋅ 0

iOS - App 间的通信方式

1、前言 iOS 系统是相对封闭的系统,App 各自在各自的沙盒(sandbox)中运行,每个 App 都只能读取 iPhone 上 iOS 系统为该应用程序程序创建的文件夹 AppData 下的内容,不能随意跨越自己的沙...

仟0123 ⋅ 2016/09/09 ⋅ 0

Vim 复制粘贴探秘

Vim作为最好用的文本编辑器之一,使用vim来编文档,写代码实在是很惬意的事情。每当学会了vim的一个新功能,就会很大地提高工作效率。有人使用vim几十年,还没有完全掌握vim的功能,这也说明...

renwofei423 ⋅ 2014/05/14 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

来自一个优秀Java工程师的简历

写在前面: 鉴于前几天的一份前端简历,虽然带着很多不看好的声音,但却帮助了很多正在求职路上的人,不管评论怎么说,我还是决定要贴出一份后端的简历。 XXX ID:357912485 目前正在找工作 ...

颖伙虫 ⋅ 20分钟前 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部