2013-03-08 55 views
3

我通過How to take a screenshot with FireMonkey (multi-platforms)的接受答案中的代碼向TImage寫了一張屏幕截圖(不僅是我的表單),它的工作正常。不過,我想在圖像中包含鼠標光標,所以我正在尋找一種解決方案,在第二步中將光標拖到TImage上。在Firemonkey截圖中包含鼠標光標

在Windows VCL項目中,代碼http://www.swissdelphicenter.ch/torry/showcode.php?id=1124運行良好,並在TImage上繪製光標。但我無法使它在Windows Firemonkey HD項目中工作,因爲該行爲

​​

因爲在Firemonkey下沒有Draw方法。我也試過「DrawIcon()」,但它總是返回False。 我想讓這段代碼在Windows上的Firemonkey中工作。

回答

1

我終於得到了這個工作。技巧是:

DrawIcon()函數(來自WinAPI.Windows)不適用於TImage現在具有Firemonkey下的FMX.Types.TBitmap類型的位圖。所以我必須創建一個類型爲Vcl.Graphics.TBitmap的臨時位圖,在該位圖上可以繪製光標圖標。 我比創建一個臨時MemoryStream,並使用我的臨時位圖的SaveToStream方法將它寫入該MemoryStream,我可以將它加載到我的窗體(Image1.Bitmap.LoadFromStream(TmpMemoryStream))上的TImage。