1. 剪贴文本AsText、SetTextBuf、GetTextBuf
Clipboard.AsText := Text;
Clipboard.SetTextBuf(PChar(Text));
{按参数类型要求, 需要转换一下} ShowMessage(Clipboard.AsText); {Form1}
Clipboard.AsText := Text; Clipboard.GetTextBuf(arr, Length(arr));
2.剪贴图片Assign、HasFormat ; CF_BITMAP 常量表示图片
Clipboard.Assign(Image1.Picture);
{把 Image1 中的图片放入剪切板} {现在在图像软件中都可以粘贴了, 可以用 Windows 画图板试试}
{如果当前剪切板中的东西不是图片, 就退出}
if
not Clipboard.HasFormat(CF_BITMAP)then
Exit;
bit := TBitmap.Create; bit.Assign(Clipboard); x := Panel1.Width + Panel1.Left *2;
y := Panel1.Top;
Canvas.Draw(x, y, bit);
bit.Free;
3. SetComponent、GetComponent
放入剪切板的方法是个过程: SetComponent(要放入的组件);
取出的方法是个函数: GetComponent(指定属主, 指定父窗口): 函数返回取出的组件的句柄.
取出以前还必须要注册要取出的组件类, 譬如: RegisterClasses([TEdit]);
在需要的时候, 我们也可以自定义剪切板中的格式.
4.SetAsHandle、GetAsHandle - 自定义格式
//用一句话完成上一个过程
procedure TForm1.Button2Click(Sender: TObject);
begin
Self.GetFormImage.SaveToFile('c:\temp\img2.bmp');
end;
//把窗体客户区图像复制到剪切板
procedure
TForm1.Button3Click(Sender: TObject);
var
Format: Word; Data: Cardinal; APalette: HPALETTE;
begin
{TBitmap.SaveToClipboardFormat 函数的三个参数都是接受数据用的, 按要求类型定义即可}
GetFormImage.SaveToClipboardFormat(Format,
Data, APalette);
{放入剪切板}
Clipboard.SetAsHandle(Format, Data);
end;