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 |
表示した頁の番号 |
プレビューのイメージのサイズを変更した時に発生します. |
引数 |
型 |
説明 |
Sender |
TOjbect |
プレビューフォーム |
Page |
Integer |
表示中の頁番号 |
OnPrintBtnClick(Sender, CanPrint)
プレビューフォームの [印刷] ボタンで,印刷ダイアログを表示した時に発生します. |
引数 |
型 |
説明 |
Sender |
TObject |
プレビューフォーム |
var CanPrint |
Boolean |
この値を False にすると印刷しない
デフォルトは Ture |
OnPrintSetupDialog(Sender)
プレビューフォームの [プリンタ・用紙] ボタンで,プリンタの設定ダイアログを表示し,[OK] ボタンで終了した時に発生します.プリンタのプロパティの保存などに利用できます. |
引数 |
型 |
説明 |
Sender |
TObject |
プレビューフォーム |
各頁のメタファイをプリンタに出力した後に発生します. |
引数 |
型 |
説明 |
Sender |
TObject |
本コンポーネント |
Page |
Integer |
出力した頁番号 |
プレビューフォームを表示する際に発生します.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 と同じ |
プレビューフォームが破棄された時に発生します.TForm の OnDestroy と同じです. |
引数 |
型 |
説明 |
Sender |
TObject |
プレビューフォーム |
|