Delphi 在应用程序内部拖放到另一个应用程序

Delphi 在应用程序内部拖放到另一个应用程序,delphi,drag-and-drop,Delphi,Drag And Drop,我有一个包含文件名的列表视图。这些文件名需要可以拖动到树状视图,树状视图是应用程序内部的一种拖放功能,可以与Delphi内置的拖放支持一起工作-没问题。但我还必须能够将ListView项目拖放到另一个应用程序,例如Windows资源管理器。例如,使用Anders Melander的component Suite()的DragFileSource组件也可以这样做,该组件在ListView.MouseDown事件中开始工作,因此实际上没有启动拖放操作 基本上,我需要的行为与您在Windows资源管理

我有一个包含文件名的列表视图。这些文件名需要可以拖动到树状视图,树状视图是应用程序内部的一种拖放功能,可以与Delphi内置的拖放支持一起工作-没问题。但我还必须能够将ListView项目拖放到另一个应用程序,例如Windows资源管理器。例如,使用Anders Melander的component Suite()的DragFileSource组件也可以这样做,该组件在ListView.MouseDown事件中开始工作,因此实际上没有启动拖放操作

基本上,我需要的行为与您在Windows资源管理器中看到的相同:您可以将项目拖动到应用程序内的另一个文件夹,也可以拖动到另一个应用程序

如何在Delphi中实现这一点?我想应该有一个“拖动”启动,但当鼠标移动到应用程序窗口外时,它需要“切换”到其他功能,如果鼠标移回应用程序窗口,再次回到标准拖放

谢谢你的帮助


Holger

如果您同时需要VCL风格和Windows风格的拖放,那么可以使用Windows风格的拖放,包括在您自己的应用程序中进行拖放操作。

DropMaster组件可能会对此有所帮助-请参阅您提到的解决方案。默认情况下,您可以在自己的应用程序或其他应用程序中启动拖放。只需选择其他应用程序能够理解的正确剪贴板格式。您的问题是什么?

我的问题是,我只能使用DragFileSource组件访问另一个应用程序。在我看来,它只是在这样做,我必须在应用程序内部做我自己的拖放工作。Lars,我的问题不是拖动到另一个带有DragFileSource组件的应用程序。我更需要它能够将源代码放到应用程序中的另一个组件上。似乎只要DragFileSource启动了它的拖动,我就只能将其放到应用程序之外或取消拖动。它只是制作了一个简单的应用程序,并按预期工作。问题一定在您的代码中。您确实为应用程序中的其他组件使用了TDropFileTarget?Lars,非常感谢您的提示。当然,我没有使用TDropFileTarget,这就是问题所在。