掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
FireMonkeyで画面項目をキャプチャ (ID:151913)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
お世話になります。 FireMonkeyを勉強中なのですが、とても困っていることがあります。 フォーム上にTLayoutを配置し、その中にTRectangleなどを配置しています。※一部動的に配置したりしようと思っています やりたいことは、上記のTLayout(各オブジェクトを配置した後)の状態をキャプチャし、PNG画像として保存したいのです。 次のコードを書いてみましたが、Layout1.PaintToで「ECanvasExceptionレンダリングを実行できません」という様なメッセージが出てしまいます。 また、このまま処理を継続しますと、Bitmap.Canvas.EndScene;のところで、「オブジェクト ロックが所有されていません」と怒られます。 何かヒントがありましたら、教えていただけませんでしょうか。 環境はDelphi12Enterprise(パッチ未適用)です。どうぞよろしくお願いいたします。 procedure TForm2.BtnCaptureClick(Sender: TObject); var Bitmap: TBitmap; Rect: TRectF; begin try Bitmap := TBitmap.Create; try Bitmap.Canvas.BeginScene; Bitmap.SetSize(Round(Layout1.Width), Round(Layout1.Height)); Bitmap.Clear(TAlphaColorRec.Yellow); // Layout1を描画 Rect := TRectF.Create(0, 0, Layout1.Width, Layout1.Height); Layout1.PaintTo(Bitmap.Canvas, Rect); Bitmap.SaveToFile('capture.png'); finally // 描画終了 Bitmap.Canvas.EndScene; end; finally Bitmap.Free; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.