2013-03-08 3 views
3

Я пишу скриншот (всего экрана, а не только моей формы) в TImage через код из принятого ответа на How to take a screenshot with FireMonkey (multi-platforms), который отлично работает. Однако я хочу включить курсор мыши в изображение, поэтому я ищу решение для рисования курсора над TImage на втором шаге.Включите курсор мыши в скриншотах, сделанных с помощью Firemonkey

В проекте Windows VCL код на http://www.swissdelphicenter.ch/torry/showcode.php?id=1124 работает хорошо и рисует курсор на TImage. Но я не могу заставить его работать в проекте Windows, FireMonkey HD, из-за линии

Canvas.Draw(CurPoxY, CurPoxY, MyCursor); 

поскольку при FireMonkey не существует никакого метода Draw. Я также попытался «DrawIcon()», но он всегда возвращает False. Я пытаюсь заставить этот код работать в Firemonkey в Windows.

ответ

1

Я, наконец, получил это, чтобы работать. Уловка:

Функция DrawIcon() (из WinAPI.Windows) не работает с растровыми изображениями типа FMX.Types.TBitmap, которые теперь имеют TImages под Firemonkey. Поэтому мне пришлось создать временный битмап типа Vcl.Graphics.TBitmap, на котором я могу нарисовать значок курсора. Я чем создаю временный MemoryStream и использую метод SaveToStream моего временного Bitmap, чтобы записать его в этот MemoryStream, из которого я могу загрузить его в TImage в моей форме (Image1.Bitmap.LoadFromStream (TmpMemoryStream)).