6

我正在尝试创建一个有趣的基本地图编辑器,它由滚动框和绘画框(用于绘制网格)组成。

在画框的 OnMouseDown 事件中,我在运行时创建图像并将它们添加到滚动框内,网格画框绘制在图像上方(因为如果网格在后面,它看起来就不好看)。

这是一个示例屏幕:

在此处输入图像描述

我的问题将解决我的两个问题。

  • 我需要能够在运行时拖放(移动)图像。
  • 我还需要能够获取图像的 X 和 Y 位置以显示为信息。

这就是我的问题所在,要解决上述问题,我首先需要获取鼠标光标下的图像。但是因为我在图像上方绘制了我的网格(画框),所以光标只会“看到”画框网格,而不是底层图像。

我确实尝试将油漆盒网格复制到 TImage 中,但结果完全错误,而且我出现了内存不足的错误。地图的大小可能非常大,因此由于内存和限制等原因,将网格放到位图上并不理想。

网格必须在顶部,否则看起来像这样:

在此处输入图像描述

这隐藏了网格,我不希望这种情况发生。

那么,我如何使用 FindVCLWindow 或类似的东西看过去画框并到达下面的图像?

4

1 回答 1

8

EnabledPaintBox 的属性设置为False。这将使鼠标消息通过。

更远:

OnMouseDownPaintBox 的事件中,我在运行时创建图像并将它们添加到滚动框中

将其更改为OnMouseDownScrollBox 上的事件。调整坐标ScrollBox.[Horz/Vert]Scrollbar.Position

于 2013-09-22T21:07:04.117 回答