Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Delphi中将文件复制到剪贴板_Delphi_Clipboard - Fatal编程技术网

在Delphi中将文件复制到剪贴板

在Delphi中将文件复制到剪贴板,delphi,clipboard,Delphi,Clipboard,有人知道如何在Delphi中复制文件吗?它喜欢在文件或文件夹上按Ctrl+C,然后我们可以粘贴到某个地方?我只知道如何通过Clipbrd单元复制文本,但我不知道如何使用文件、文件夹! 请帮帮我 使用该格式存储文件/文件夹的完整路径,或使用该格式存储文件/文件夹的ITEMIDLIST。有关更多详细信息,请参阅MSDN: 或者,使用或其他类似功能将文件夹/文件路径转换为ITEMIDLIST值,然后使用从中创建IDataObject,然后将其传递到。剪贴板和拖放有许多共同点。大多数支持拖放的库都有剪

有人知道如何在Delphi中复制文件吗?它喜欢在文件或文件夹上按Ctrl+C,然后我们可以粘贴到某个地方?我只知道如何通过Clipbrd单元复制文本,但我不知道如何使用文件、文件夹! 请帮帮我

使用该格式存储文件/文件夹的完整路径,或使用该格式存储文件/文件夹的
ITEMIDLIST
。有关更多详细信息,请参阅MSDN:


或者,使用或其他类似功能将文件夹/文件路径转换为
ITEMIDLIST
值,然后使用从中创建
IDataObject
,然后将其传递到。

剪贴板和拖放有许多共同点。大多数支持拖放的库都有剪贴板所需的一切。例如,检查此库:

它是免费的,有完整的源代码,并且有很多示例,包括剪贴板操作

其中一个示例是DragDrop\Demos\Unicode\DragDropUnicode.dproj,它具有弹出命令“复制到剪贴板”:


希望能有帮助。

你曾经问过这个问题。不要再问新问题了。请修正原来的问题。编辑它,我们可以重新打开它。你听从我在评论中给你的建议了吗。你试过什么吗?你能证明你的努力吗?哦,对不起!这是我第一次在这个网站上提问。还有一些非希望的问题。这是你的第二个问题。这是您接受的答案的副本,只不过是另一个问题上的注释。我已经尝试过了,但在为Delphi XE3编译时出现了错误。不过,谢谢你@用户:好的,官方上它不支持XE3,但实际上在XE3中采用它大约需要10分钟:打开DragDropD2011.dpk并将其保存为DragDropXE3.dpk,使用CF_LOCALE const而不是CF_MAX-1(编译器显示其中),替换某些方法的定义(从相应接口的定义中复制粘贴,编译器显示什么接口的方法),将整数替换为1-2位到NativeInt或类似的内容(编译器显示在何处),…然后您将拥有功能强大且方便的工具。在修复CF_MAX-1错误:[dcc32错误]DragDropContext.pas(66)后发生此错误:E2291缺少接口方法IContextMenu3的实现。HandleMenuMsg2@user:如果你仔细阅读我之前的评论,你会发现你应该使用什么来代替CF_MAX-1.和HandleMenuMsg2(+其他方法很少)没有遗漏,它只是有一点不同的参数,所以从相应的接口复制方法定义就足够了。关于如何将文件或文件夹复制到剪贴板的问题的答案?不应该是Go and get Drag and Drop Component Suite for Delphi。它有很多示例。这只是一个注释。[尽管我没有投票反对]
procedure TForm1.ActionFileCopyExecute(Sender: TObject);
begin
  if (FFiles = '') then
    DropFileSource1.Files.Text := LoadResString(0)
  else
    DropFileSource1.Files.Text := FFiles;

  DropFileSource1.CopyToClipboard;
end;