Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2000年12月12日] [更新 2016年04月19日] 印刷プレビュー制御コンポーネント
   
印刷プレビュー制御コンポーネント
プレビューフォームの構成
動作確認等 図は Windows 7 U64(SP1) + Delphi XE(UP1) Pro で作成







フォームの構成


プレビューフォームのユニット名は PLPREVFRM.pas です.プロパティの FormName を指定しない時は,このフォームを継承したプレビューフォームを自動的に作成して表示します.この大元のフォームに変更を加えると,全てのプレビューフォームが同じデザインとなります.必要なら大元のこのフォームもカスタマイズして利用して下さい.
TplPrev を継承したコンポーネントでは一部機能制限があります.


図1
プレビューフォーム




操作用ボタン類


以下のボタン類があります.ボタンの表示・非表示はコンポーネントの BtnOptions プロパティで設定します.またこのボタン類を乗せているコントロールである TCoolbar も,FormIconBar プロパティを False にすると表示しません.

[印刷] [印刷] のダイアログを表示します.印刷時に [プロパティ] を変更してもプレビューに反映はされません.
ボタンをクリックすると,OnPrintButtonClick イベントが,また各頁の印刷の後に OnPrint イベントが発生します.
[プリンタ・用紙] [プリンタの設定] ダイアログを表示します.デフォルトでは非表示となっています.ここで用紙サイズなどを変更するとプレビューも変化します.[OK] で閉じると OnPrinterSetupDialog イベントが発生します.

逐次表示方式の場合のみ利用可能です.
継承コンポーネントではタックシール印刷コンポで利用できます.
DBGrid 印刷,Query 印刷コンポーネントでは正常動作しません.そのためデフォルトで非表示となっています.
[先頭頁] [前頁]
[次頁] [最終頁]
各々キャプション通りの動作です.
頁のプレビュー後に OnAfterView イベントが,また,先読み方式ではプレビュー前に OnBeforeView イベントが発生します.このイベント内では,Canvas への描画が可能で,総頁数の印刷などに利用します.
[拡大] [縮小] 拡大縮小率は10%です.
[全体] 頁全体を表示します.
プレビュー開始前に ZoomType := ztWholePage で指定可能です.
[頁幅] 頁の幅を基準にした表示にします.
プレビュー開始前に ZoomType := ztPageWidth で指定可能です.
[ヘルプ] イベントは実装していません.将来の拡張用で,主に継承プレビューフォームを使用する時に利用することを想定しています.
[情報] イベントは実装していません.将来の拡張用で,主に継承プレビューフォームを使用する時に利用することを想定しています.
[閉じる] プレビューフォームを閉じます.
Form の各イベントに対応した OnFormCloseQuery, OnFormClose が発生します.また,破棄の際に OnFormDestroy イベントが発生します.




ステータスバー


StatusBar.Panel[0] に頁番号,頁数と用紙名を表示します.
StatusBar.Panel[1] には StatusBarText プロパティで文字列を指定できます.
StatusBar.Panel[0].Text のプロパティとかメソッド,あるいはイベントは用意していません.必要であれば plPrevfrm.pas 内のコードを直接書換えて下さい.




ポップアップメニュー


プレビューフォーム上でマウスの右ボタンをクリックすると,以下の項目があるポップアップメニューを表示するようになっています.

現在の頁をコピー 現在プレビューしている頁を現在の用紙サイズでクリップボードにコピーします.形式は拡張メタファイルです.
画面をコピー プレビューフォーム全体をコピーします.ワード等の文書に貼付けて,説明用図として利用できます.
画面ハードコピー 印刷ダイアログを表示して,プレビューフォーム全体をハードコピーとしてプリンタで印刷します.用紙の上端と左右に用紙幅の 10 % の余白をつけています.