剪切板是哪个区域的 使用剪切板[2]:Assign、HasFormat
![剪切板是哪个区域的 使用剪切板[2]:Assign、HasFormat](http://img.zhputi.com/uploads/1590/1590a51eb9f09a5f7e1d55945047e03841616.jpg)
使用剪切板[2]:Assign、HasFormat
准备工作
在窗体上放置一个 TPanel 在 TPanel 上放一个 TImage 另外需要三个按钮
本例效果图
=224>
第一版代码
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; Panel : TPanel; Image : TImage; procedure Button Click(Sender: TObject); procedure Button Click(Sender: TObject); procedure Button Click(Sender: TObject); end;
var Form : TForm ;
implementation
{$R * dfm}
uses Clipbrd;
procedure TForm Button Click(Sender: TObject);begin Image Left := ; Image Top := ; Panel AutoSize := True; Image AutoSize := True; Image Picture LoadFromFile( c:temptest bmp );
TButton(Sender) Caption := 导入 ;end;
procedure TForm Button Click(Sender: TObject);begin Clipboard Assign(Image Picture); {把 Image 中的图片放入剪切板} {现在在图像软件中都可以粘贴了 可以用 Windows 画图板试试}
TButton(Sender) Caption := 复制 ;end;
procedure TForm Button Click(Sender: TObject);var bit: TBitmap; {准备用一个 TBitmap 从剪切板中结束图片} x y: Integer;begin bit := TBitmap Create; bit Assign(Clipboard); {从剪切板获取} x := Panel Width + Panel Left * ; {x y 是准备在窗体上的粘贴位置} y := Panel Top; Canvas Draw(x y bit); {粘贴就是画出来呗} bit Free;
TButton(Sender) Caption := 粘贴 ;end;
不过现在程序还有漏洞 假如剪切板中没有东西 粘贴什么? 如果剪切板中不是图片 怎么粘贴?
其实我们只用 TClipboard HasFormat 函数判断一下剪切板中是不是图片就行了
第二版代码
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; Panel : TPanel; Image : TImage; procedure Button Click(Sender: TObject); procedure Button Click(Sender: TObject); procedure Button Click(Sender: TObject); end;
var Form : TForm ;
implementation
{$R * dfm}
uses Clipbrd;
procedure TForm Button Click(Sender: TObject);begin Image Left := ; Image Top := ; Panel AutoSize := True; Image AutoSize := True; Image Picture LoadFromFile( c:temptest bmp ); TButton(Sender) Caption := 导入 ;end;
procedure TForm Button Click(Sender: TObject);begin {如果 Image 还没有图片 就别复制了 退出吧} if Image Picture = nil then Exit;
Clipboard Assign(Image Picture); TButton(Sender) Caption := 复制 ;end;
procedure TForm Button Click(Sender: TObject);var bit: TBitmap; x y: Integer;begin {如果当前剪切板中的东西不是图片 就退出} if not Clipboard HasFormat(CF_BITMAP) then Exit;
bit := TBitmap Create; bit Assign(Clipboard); x := Panel Width + Panel Left * ; y := Panel Top; Canvas Draw(x y bit); bit Free; TButton(Sender) Caption := 粘贴 ;end;
lishixinzhi/Article/program/Delphi/201311/24656