>実力というか,スキルというか,知識というか,その差は歴然としていました.
私もXRAY様のコードを見ると愕然とする事が今でも多々あるのですが^^;
実力のある方のコードは、もはや理解できないレベルのコードもあり、
お笑い芸人サンドイッチマンさんの「ちょっと何言ってんのかわからない」のセリフがピッタリ合う
物もあったりします^^;
※ 私のスキルが未熟な為ですよ(汗
帳票印刷は私も過去に中村様のサイトを参考に(Delphi掲示板でリンクを貼って頂いた方が居ました)
行った事があります。
(1)
印刷といっても大きなTBitmapをローカルで用意し、それに必要な画像や文字を描画、
スクロールボックスに動的に作成したTImageを配置し、そのTImageの大きさに合わせたStretchコピーを
行ってプレビューさせるという方法でした。
スクロールボックス内のTImageが動的生成なのは、ページ数がいくつあるか判らない、
また、動的に作成されたTImageはマウスホイールで拡大・縮小できる様にする為、
1ページのプレビューがウインドウサイズを超える場合がある為でした。
内部TBitmapとTimageでかなりメモリを消費しますので、何百枚のプレビューは不可能でしたが(と思われる)
最大でも10ページ位だろうという事でそういう風になりました。
肝心の印刷処理は、中村様のサイトを参考にさせてもらいました。
(2)
また、別な印刷処理では、
内部にTRichEditを生成、そのTRichEditに画像と文字を描画、
DelphiのTRichEditは、標準では画像を貼り付けられない為、ネットから貼り付けられる
魔法の様なコードを拝借して組み込みました(汗
内部で持たせたTRichEditの全ての画像や文字を全選択し、
クリップボードの内容をTStreamに退避してから、クリップボードに転送、
Windowsのワードパッドを起動し、ワードパッドにクリップボードから貼り付け、
その後に退避していたデータをクリップボードを復帰させるというw
システマチックかつ七面倒な事を行った事があります。
※ 当時、私のスキルが未熟な為、この様な事しか思いつかなかったのです(白目
ワードパッドの起動方法や、ワードパッド内のTRichEditハンドルの取得方法はHalbow様の
テクニックを参照しました。
ワードパッドに転送された画像と文字はそのまま印刷できますし、
保存してMicrosoft Wordで読み込めば、罫線を引くなど好きな様に編集可能になります。
(1)のやり方は、後日編集不可能な為、決まりきっている印刷物に向いてますが、
描画処理をゴリゴリ書けば綺麗なレイアウトで印刷できます。
(2)のやり方は、後日編集が可能な為、とりあえずデータが欲しい、
文章フォーマットは各自用意してあるので、オペレータが自由に触りたいという場合向けでした。
印刷に関しては、QuickReportやPDF出力などによる方法も考慮しましたが、
PDF出力はプリンタ出力先をPDFに指定できるソフトがあり、興味はあったのですが断念。
ドロー的な印刷に興味はあるのですが、まだ手も付けていない状態です。
話が長くなってすみません。浅知恵的な事を書いていたら笑ってやって下さい^^;
|