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

时间:2013-03-08 14:59:25

标签: 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中运行。

1 个答案:

答案 0 :(得分:1)

我终于开始工作了。诀窍是:

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