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 % の余白をつけています。