剪贴板类怎么使用GetData?(25分)

  • 主题发起人 ~风之彼端~
  • 开始时间

~风之彼端~

Unregistered / Unconfirmed
GUEST, unregistred user!
Clipboard类好像有一个GetData例程,不知该怎么用?
好像这个例程需要两个参数,一个PChar,一个Integer,其中Integer是表示获取数据的
Size,但是我没有找到clipboard中哪个函数可以获得剪贴板内容实际大小,那么我又如何
调用GetData函数呢?我怎么知道得到了全部的剪贴板数据呢?希望哪位大虾告诉小弟,谢谢
了!

分数不够,我以后再加。抱歉,我现在总共才有25分。
 
举例:
if (Clipboard.HasFormat(CF_TEXT) or Clipboard.HasFormat(CF_OEMTEXT)) then
FileName := LegalFileName(Clipboard.asText);

edtPath.Text := SaveToDir+'/'+FileName+'.htm';
 
to zw84611:
无法编译:[Error] Unit1.pas(27): Undeclared identifier: 'LegalFileName'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

还有,我要得到的是剪贴板数据,不是把剪贴板存盘,而且您的例子好像只是得到了
一个文件名而已,没有办法获得实际数据嘛。
 
抱歉,那是我自定义的函数,把它去掉就可以了。是我从程序中拷出来的,后面的不用管它,
其实就是这一句:Clipboard.asText
 
to zw84611:
可是,如果文字长度超过255个子怎么办?而且我需要处理的数据绝对超过255个字符,而且
也可能超过RichEdit允许的64K,所以我才需要使用GetData函数呀。可是我又不知道这个函数
怎么用,您能告诉我吗?
 
更正一下,上面我写错了,刚刚看了Delphi的,是function GetTextBuf(Buffer: PChar; BufSize: Integer):
Integer;而不是GetData函数。
 
奇怪,我怎么没找到有GetData呀,
你要把数据粘贴到哪儿?
 
刚才写错了,应该是GetTextBuf
 
超过255,AsText就不行了吗?
 
Delphi帮助中说,AsText返回string类型得数据,string不是只有255个字符大小吗?
 
那是Short String吧,你试试不就知道了。
 
好吧,我先试试。
 
to zw84611大虾:
谢谢您。您的方法可行,我保存1M的内容都可以的!分数肯定是您的,那您能进一步告诉我
GetTextBuf函数怎么用吗?当然,我自己也会在下面试试的。谢谢您!!!!!!!

不过奇怪了,为什么我不能给string类型赋值超过255个字符的值呢?

接受答案了。
 
顶部