人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

C++Builder5でStringGridを使ったアプリを作成しています。StringGridの印刷を行いたいのですが、イメージ(画像)としてprinterのcanvasに貼り付ける方法しか私には考えられなかったのですが、他にどのような方法があるのでしょうか?

希望としては、クイックレポート並みの綺麗さで、かつタイトルを任意につけられたりするとよいのですが・・・

●質問者: tecra
●カテゴリ:コンピュータ
✍キーワード:C++Builder Canvas アプリ イメージ タイトル
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● mkonomi
●25ポイント

cbuilderメーリングリスト

cbuilderメーリングリスト

直接の回答ではありませんが・・・

この種の質問は上記メーリングリストに問いかけると、多くのc++builder好きがよってたかって教えてくれます。

◎質問者からの返答

過去ログを見ましたが、たいてい紹介されているライブラリはすでにNot Foundになっているものばかりでした。


2 ● quintia
●45ポイント

C++Builder の情報は極端に少ないですよね……。


TPrinter クラスを使って描画していく Delphi のソースがあります。(正確には Printers ユニットの Printer メソッドを使って、通常使うプリンタにあたる TPrinter のインスタンスを取り出しています)

http://forum.nifty.com/fdelphi/samples/00288.html


TForm1.GridPrint プロシジャは TForm1 から切り離すことができるのでこのまま使えます。

例えば、GridPrintProc.pas という名前で、

unit GridPrintProc;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Printers;
//↑この uses は手抜き。こんなに要らないはず。
procedure GridPrint(Grid:TStringGrid);
implementation
procedure GridPrint(Grid:TStringGrid);
var
//ここの実装はリンク先のTForm1.GridPrintからコピー。
end;
end.

というファイルを作ります。(空行が無くなってしまって見にくいですが)

プロジェクトにpasファイルを追加して再構築。GridPrintProc.hpp ができる(と思う)ので、

#include "GridPrintProc.hpp"

して、

GridPrint(StringGrid1);

の様に使えるはずです。


 with Printer do
 :
 end;

が、通常使うプリンタにあたる TPrinter のインスタンスを利用している部分です。

メソッドの引数にしてしまえば、プリンタ設定のダイアログなどとの連携もできるでしょう。そこまで必要かは判りませんが……。

◎質問者からの返答

ありがとうございます。これで試してみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ