3

我通过How to take a screenshot with FireMonkey (multi-platforms)中接受的答案中的代码将屏幕截图(整个屏幕,不仅是我的表单)写入 TImage ,效果很好。但是我想在图像中包含鼠标光标,所以我正在寻找一种解决方案,在第二步中将光标绘制在 TImage 上。

在 Windows VCL 项目中,位于http://www.swissdelphicenter.ch/torry/showcode.php?id=1124的代码运行良好并将光标绘制在 TImage 上。但我不能让它在 Windows Firemonkey HD 项目中工作,因为这条线

    Canvas.Draw(CurPoxY, CurPoxY, MyCursor);

因为在 Firemonkey 下没有 Draw 方法。我也试过“DrawIcon()”,但它总是返回 False。我试图让这段代码在 Windows 上的 Firemonkey 中工作。

4

1 回答 1

1

我终于让这个工作了。诀窍是:

DrawIcon() 函数(来自 WinAPI.Windows)不适用于 TImage 现在在 Firemonkey 下具有的 FMX.Types.TBitmap 类型的位图。所以我必须创建一个 Vcl.Graphics.TBitmap 类型的临时位图,我可以在其上绘制光标图标。然后,我创建一个临时 MemoryStream 并使用我的临时 Bitmap 的 SaveToStream 方法将其写入该 MemoryStream,我可以从中将其加载到我的表单上的 TImage (Image1.Bitmap.LoadFromStream(TmpMemoryStream))。

于 2013-03-09T16:09:50.693 回答