掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Chartの画像保存 (ID:33763)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Mr.XRAYさん、返事が遅れまして、申し訳ありません。 ご推察のとおりこのアプリは、TChartがalClientで 配置されている子フォームを配置するもので、 この配置され表示している状態をプリンタに印刷していました。 (いまのところ「上下に並べて表示」しか対応できていませんが・・・) 教えていただいた方法を参考にして、以下のように実装しまして、 今のところ、「上下に並べて表示」状態だけですが、 希望通りファイルに保存することが出来るようになりました。 ありがとうございました。 procedure TFmMain.Button2Click(Sender: TObject); var AMeta : TMetafile; ABmp : TBitmap; AJpeg : TJpegImage; child_index : Integer; top_pos : Integer; one_graph_height : Integer; begin AMeta := TMetafile.Create; ABmp := TBitmap.Create; AJpeg := TJPEGImage.Create; try //Bitmapのサイズを設定 ABmp.Width := FmMain.ClientWidth; ABmp.Height := FmMain.ClientHeight; top_pos := 0; one_graph_height := Trunc(FmMain.ClientHeight / GetActiveGraphNum); for child_index := 0 to MDIChildCount - 1 do begin if IsIconic(TFmGraphDisplay(MDIChildren[child_index]).Handle) = False then begin //Chart1の画像をメタファイルにする AMeta := TFmGraphDisplay(MDIChildren[child_index]).ChGraph.TeeCreateMetafile(True, TFmGraphDisplay(MDIChildren[child_index]).ChGraph.ClientRect); //BitmapのCanvasにAMetaを描画 ABmp.Canvas.StretchDraw(Rect(0,top_pos,TFmGraphDisplay(MDIChildren[child_index]).Width, top_pos + TFmGraphDisplay(MDIChildren[child_index]).Height), AMeta); top_pos := top_pos + one_graph_height; end; end; //Jpegに変換して保存 AJpeg.Assign(ABmp); AJpeg.SaveToFile('AJpegMy.jpg'); finally FreeAndNil(AJpeg); FreeAndNil(ABmp); FreeAndNil(AMeta); end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.