我通过 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 中运行。
最佳答案
我终于让它发挥作用了。诀窍是:
DrawIcon() 函数(来自 WinAPI.Windows)不适用于 TImage 现在在 Firemonkey 下具有的 FMX.Types.TBitmap 类型的位图。因此,我必须创建一个 Vcl.Graphics.TBitmap 类型的临时位图,我可以在其上绘制光标图标。 然后,我创建一个临时 MemoryStream 并使用临时位图的 SaveToStream 方法将其写入该 MemoryStream,从中我可以将其加载到表单上的 TImage (Image1.Bitmap.LoadFromStream(TmpMemoryStream))。
关于delphi - 在使用 Firemonkey 拍摄的屏幕截图中包含鼠标光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15296900/