delphi 剪切板变量_delphi读写剪贴板的一些参考

这篇博客详细介绍了如何在Delphi中设置和获取剪贴板数据。通过使用GlobalAlloc分配内存,SetClipboardData设置数据,以及IsClipboardFormatAvailable和GetClipboardData检查和获取数据。同时,还提供了一个示例代码,演示了剪贴板数据的完整操作流程。
摘要由CSDN通过智能技术生成

设置剪贴板数据:

先用GlobalAlloc在堆中分配空间,返回的Hmem句柄将作为SetClipboardData的第二个参数。

然后用GlobalLock把Hmem转为指针,再用delphi的strCopy把字符串写入。

取剪贴板数据:

获取剪贴板里的数据时,是不知道当前剪贴板里是否有数据的,也不知道剪贴板里的数据格式是什么。那么下面就来解决这两个问题,先使用函数IsClipboardFormatAvailable来获取剪贴板里的格式是否可以处理,接着使用函数OpenClipboard打开剪贴板,然后使用函数GetClipboardData来获取剪贴板数据

源代码如下:

-----------------------------------------------------------

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Memo1: TMemo;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

*******

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

s1:string;

hmem:HGLOBAL;

pstr:PChar;

begin

s1:='猪悟能在test剪贴板';

hmem:=GlobalAlloc(GMEM_MOVEABLE or GMEM_DDESHARE,Length(s1)+4);

pstr:=GlobalLock(hmem);

StrCopy(pstr,PChar(s1));

if OpenClipboard(0)then

begin

SetClipboardData(CF_TEXT,hmem);

CloseClipboard;

GlobalUnlock(hmem);

GlobalFree(hmem);

ShowMessage('字符串已经复制到剪贴板');

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

var

hmem:THandle;

pstr:PChar;

begin

//检查剪贴板类容类型

if IsClipboardFormatAvailable(CF_TEXT) then

begin

OpenClipboard(0);

hmem:=GetClipboardData(CF_TEXT);

pstr:=GlobalLock(hmem);

Memo1.Text:=pstr;

GlobalUnlock(hmem);

CloseClipboard;

end;

end;

end.

用#9查找tab符号:

ipos := pos(#9,sTmp)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值