delphi - 在使用 Firemonkey 拍摄的屏幕截图中包含鼠标光标

标签 delphi screenshot firemonkey delphi-xe3 firemonkey-fm2

我通过 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/

相关文章:

ms-access - 有没有办法用vba在MS-Access中截取屏幕截图?

python - PsychoPy 实验期间的屏幕截图

ios - 在 Firemonkey 的 iOS 应用程序中使用 SOAP Web 服务

ios - 纵横比错误的 iTunes Connect 屏幕截图

android - Delphi android 创建操作栏

delphi - 如何阅读页面源 TWebBrowser Firemonkey

algorithm - 在 Delphi 中解决 TSP 的蛮力算法

delphi - 将 TForm win32 应用程序转换为 Win7 小工具 (delphi)

delphi - 枚举常量属性不流式传输

delphi - 如果另一端没有从套接字读取数据,如何避免在 Indy 中写入套接字时卡住