zoukankan      html  css  js  c++  java
  • 使用剪切板[4]: 如果把子控件一起复制? 同时回复 ghd2004 的问题

    如果连同子控件一起复制到剪切板, 需要定义一个新类型.

    譬如在一个 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.
    
  • 相关阅读:
    Ansible中文权威指南学习
    gitlab
    Python-Day01-task
    Python-Day01
    CentOs6.7 python2.6升级到2.7.11
    网站访问慢排查方法及解决方案
    LAMP环境下zabbix安装配置
    监控知识点概述
    Java抽象类、接口和内部类
    Java 访问控制
  • 原文地址:https://www.cnblogs.com/del/p/1137617.html
Copyright © 2011-2022 走看看