添加TForm或Panel.Transparent的快捷方式?

时间:2011-12-03 17:35:04

标签: delphi panel transparent shortcut

为了阻止挑剔者,让我先说一下,我在这里搜索并找不到答案,是的,我也滚动了“类似问题”。...   添加到TForm的快捷方式

我想将一些快捷方式从桌面拖放到我的应用程序中的TForm。我正在使用Anders Melander的精彩Drag Drop Suite(DDS)。

我尝试在表单上放置一个TImage,但是DDS没有放到图像上,所以我添加了一个带有TImage的TPanel。然后我可以放在面板上并将图像分配给TImage.Picture。问题是Panel没有透明属性,因此表单上的快捷方式看起来很笨重,后面有可见的Panel。

我需要能够放弃TImage或使底层TPanel透明。

任何人都可以帮助使用这些选项中的任何一个的代码片段,或者更好的是,将快捷方式直接放到我的表单上的方法。

由于

2 个答案:

答案 0 :(得分:3)

巧合的是,我需要将TWinControl(带窗口句柄的每个可见控件的基础,包括TPanel)透明化。我找到了很多结果并将它们应用到this answer

我实施拖放已经有一段时间了,但我假设您调用了一些API并将其传递给面板的句柄?这回答了为什么你不能使用TImage的问题。 TImage是一个图形控件,一个没有句柄的控件,依赖于它的父级来接收消息和绘制自己。

应该可以使用表单,因为它也有句柄。

答案 1 :(得分:1)

如果TImage直接位于TForm上,那么让TForm处理丢弃,不需要TPanel。 OLE Drag& Drop操作(Ander的组件实现)提供了拖放发生的坐标。 TForm应该能够检测拖动何时超过TImage占用的区域以及拖动的数据类型,并且只允许删除该区域内支持的类型,提取丢弃的数据并根据需要更新TImage,并拒绝与该标准不符的任何其他内容。