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