如何判断剪贴版中的格式时HyperLink????(50分)

  • 主题发起人 主题发起人 微风的吻
  • 开始时间 开始时间

微风的吻

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi定义了一些剪贴版格式,如CF_TEXT,CF_BITMAP等,可是
HyperLink格式是CF_******?????
 
估计还是CF_TEXT
是不是HyperLink,你自己对字符串进行分析就可以了.
 
同意 beta ,HyperLink也是文本。
问题可以结束了。
 
老兄,可以给分了吗?
还有什么问题也可以问嘛.

mophy@188.net
 
这可以是一个方法,我也曾经想过的,但hyperlink肯定有自己的定义的.

例如:在文本编辑其中有文字http://www.163.net,我选中然后ctrl-c会进入
剪贴版,可是如果在浏览器中又一个超级连接http://www.163.net,我右键点击,
选择"复制快捷方式"也会进入剪贴版,可这两种方式一定是有区别的,一个是真真
hyperlink,而另一个只不过是一段文字罢了.

希望请高手指教.
 
是一样的啊
 
同意Pipi,的确是一样的.
某一个程序判断剪贴板里的内容是否为HyperLink,
只是对string进行分析而已.
比如是否以'http://'或'ftp://'开头等.
 
我还是坚持我的观点:两者不一样的,你们看看下面的代码,我讲的两种情况
在执行下面代码后出现在listbox中的Format的个数和名称后很大区别,
你们自己看看.

procedure TForm1.Button1Click(Sender: TObject);
const
{an array defining all of the predefined clipboard format names}
PredefinedClipboardNames: array[1..17] of string =
('CF_TEXT', 'CF_BITMAP','CF_METAFILEPICT', 'CF_SYLK',
'CF_DIF','CF_TIFF', 'CF_OEMTEXT', 'CF_DIB','CF_PALETTE',
'CF_PENDATA', 'CF_RIFF', 'CF_WAVE', 'CF_UNICODETEXT',
'CF_ENHMETAFILE', 'CF_HDROP', 'CF_LOCALE','CF_MAX');
var
FormatID: UINT; // holds a clipboard format ID
FormatName: array[0..255] of char; // holds a clipboard format name
Len: Integer; // the length of a clipboard format name

begin
{clear out the list box}
ListBox1.Items.Clear;

{display the number of formats on the clipboard}
Label1.Caption := 'Total Formats Available: '+
IntToStr(CountClipboardFormats);

{open the clipboard}
OpenClipboard(0);

{retrieve the first available clipboard format}
FormatID := EnumclipboardFormats(0);

{retrieve all clipboard formats}
while (FormatID <> 0 ) do

begin
{get the name of the clipboard format. note that this will only
return a format name if it is a registered format, not one
of the predefined formats}
Len := GetClipboardFormatName(FormatID,FormatName,255);

{if len is equal to zero then it's a predefined format}
if Len = 0 then
ListBox1.Items.Add(PredefinedClipboardNames[FormatID]+' (Predefined)'+' [' + IntToStr(FormatID)+ ']')
else
{otherwise it contains a registered format name}
ListBox1.Items.Add(FormatName+' [' + IntToStr(FormatID)+ ']');

{retrieve the next available clipboard format}
FormatID:=EnumclipboardFormats(FormatID);
end;

{we are done with the enumeration, so close the clipboard}
CloseClipboard;
end;
 
haha,easy
是cf_html格式,注册一个剪贴板格式字符串'HTML Format'就可以用了

 
还没有结束啊
 
多人接受答案了。
 
后退
顶部