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