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


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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/07/11 02:28:54
  • 終了:2006/07/14 22:42:16

回答(2件)

id:mkonomi No.1

mkonomi回答回数651ベストアンサー獲得回数452006/07/11 12:00:14

ポイント25pt

cbuilderメーリングリスト

cbuilderメーリングリスト

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

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

id:tecra

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

2006/07/11 16:03:27
id:quintia No.2

quintia回答回数562ベストアンサー獲得回数712006/07/11 18:58:22

ポイント45pt

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 のインスタンスを利用している部分です。

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

id:tecra

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

2006/07/14 22:40:50

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません