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 |
プレビューフォーム |
|