Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2000年12月12日] [更新 2004年11月17日] 印刷プレビュー制御コンポーネント
   
印刷プレビュー制御コンポーネント
イベント
動作確認等 -







イベント


この印刷プレビュー制御コンポーネントは、いわゆるレポート作成ツールではありません.印刷コードは全て利用者が作成する必要があります.したがって,基本的に TCanvas に描画可能な,ページ描画関係に関するイベントはありません.ただ,先読み方式の場合,頁数の取得のタイミングが面倒なので,OnBeforeView イベントを定義して頁数の取得ができるようにしています.また,プレビューフォームを自動生成する際,フォーム関係のイベントがないと不便ですので実装しています.


[備考]
イベント内に TCanvas への描画コードが書けるのは OnBeforeView と OnNoPrintDraw です.
OnFormShow 内にも描画コードが書けますが注意が必要です.詳しくはテストプログラムを参照して下さい.Ver4.0 では,プレビューフォーム関係のイベントを追加しました.これにより,フォームを表示しなくてもプレビューフォームのイベントを作成することが可能となりました.




各頁プレビューまたは印刷前のイベント ( 先読み方式専用 )


OnBeforeView(Sender, Page)

先読み方式専用のイベントです(逐次方式では無効).このイベント内で描画コードを追加できます.
先読み方式では,描画が終了するまで頁数が不明ですが,このイベントを利用すると頁数の印刷が可能です.これは,プレビュー開始時点で頁数が決定されていることを利用しています.

引数 説明
Sender TObject コンポーネント自身
Page Integer これから表示または印刷する頁の番号


リスト1
先読み方式で頁数をプレビューして印刷するコード
procedure TForm1.plPrev1BeforeView(Sender: TObject; Page: Integer);
var
  LPageStr : String;
begin
   //文字のサイズ
   plPrev1.FontSize(12);
   //頁番号の文字列を作成
   LPageStr := IntToStr(Page) + '/' + IntToStr(plPrev1.PageCount);
   //X=105.0mm,Y=270.0mmに位置に文字列を描画
   plPrev1.TextOutCC(1050, 2700, LPageStr);
end;




印刷しない描画用のイベント


OnNoPrintDraw(Sender, Page)

このイベント内に書いたコードは印刷しません.また描画のクリップもしません.印刷はしないが,プレビューはしたい描画に使用します.

引数 説明
Sender TObject コンポーネント自身
Page Integer 頁番号




各頁プレビュー後のイベント


OnAfterView(Sender, Page)

このイベントの後に OnResize イベントが発生します.

引数 説明
Sender TObject プレビューフォーム
Page Integer 表示した頁の番号




リサイズ時のイベント


OnResize(Sender, Page)

プレビューのイメージのサイズを変更した時に発生します.

引数 説明
Sender TOjbect プレビューフォーム
Page Integer 表示中の頁番号




印刷ダイアログ表示終了時のイベント


OnPrintBtnClick(Sender, CanPrint)

プレビューフォームの [印刷] ボタンで,印刷ダイアログを表示した時に発生します.

引数 説明
Sender TObject プレビューフォーム
var CanPrint Boolean この値を False にすると印刷しない
デフォルトは Ture




プリンタ設定ダイアログ表示終了時のイベント


OnPrintSetupDialog(Sender)

プレビューフォームの [プリンタ・用紙] ボタンで,プリンタの設定ダイアログを表示し,[OK] ボタンで終了した時に発生します.プリンタのプロパティの保存などに利用できます.

引数 説明
Sender TObject プレビューフォーム




印刷時のイベント


OnPrint(Sender, Page)

各頁のメタファイをプリンタに出力した後に発生します.

引数 説明
Sender TObject 本コンポーネント
Page Integer 出力した頁番号




プレビューフォームを表示する時のイベント


OnFormShow(Sender)

プレビューフォームを表示する際に発生します.TFormのOnShow イベントと同様の使い方ができます.プレビューフォームのユニット内に印刷用のコードを書く時は,この OnFormShow 内に書きます.

引数 説明
Sender TObject プレビューフォーム




プレビューフォームが閉じた時のイベント


OnFormClose(Sender, Action)

プレビューフォームを閉じる時に発生します.TForm の OnClsoe と同じです.

引数 説明
Sender TObject プレビューフォーム
var Action TCloseAction TForm の Action と同じ




プレビューフォームが閉じる時のイベント


OnFormCloseQuery (Sender)

Close メソッドが呼ばれた時,あるいは,システムの閉じる動作を行った時に発生します.TForm のOnCloseQuery と同じです.

引数 説明
Sender TObject プレビューフォーム
var CanClsoe Boolean TForm の CanClose と同じ




プレビューフォームが破棄される時のイベント


OnFormDestory (Sender)

プレビューフォームが破棄された時に発生します.TForm の OnDestroy と同じです.

引数 説明
Sender TObject プレビューフォーム