3

FireMonkey (マルチプラットフォーム) でスクリーンショットを撮る方法で受け入れられた回答のコードを使用して、(フォームだけでなく画面全体の) スクリーンショットを TImage に書き込みます。ただし、画像にマウスカーソルを含めたいので、2番目のステップで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 で動作させようとしています。

4

1 に答える 1

1

私はついにこれを機能させました。トリックは次のとおりです。

DrawIcon() 関数 (WinAPI.Windows から) は、現在 TImage が Firemonkey の下に持っているタイプ FMX.Types.TBitmap のビットマップでは機能しません。そのため、カーソル アイコンを描画できる Vcl.Graphics.TBitmap 型の一時ビットマップを作成する必要がありました。次に、一時的な MemoryStream を作成し、一時的な Bitmap の SaveToStream メソッドを使用してその MemoryStream に書き込み、そこからフォームの TImage に読み込むことができます (Image1.Bitmap.LoadFromStream(TmpMemoryStream))。

于 2013-03-09T16:09:50.693 に答える