Delphi Programming / Object Pascal

[掲載 2001年02月04日] [更新 2016年04月30日] Query 印刷コンポーネント |
Query 印刷コンポーネント
イベント |
| 動作確認等 |
図は Windows 7 U64(SP1) + Delphi XE(UP1) Pro で作成 |
| Ver4.0 では、プレビューフォーム関係のイベントを追加しました。これにより、フォームを表示しなくてもプレビューフォームのイベントを作成することが可能となりました。 |
 |
図1
イベント一覧 |
OnBeforeView (Sender, Page)
| 各々の頁をプレビューまたは印刷する前に発生するイベントです。このイベント発生時点で頁数プロパティが確定しています。したがって、このイベントを利用すると総頁数の印刷が可能です。このイベント内では Canvas への描画が可能です。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
コンポーネント自身 |
| Page |
Integer |
これから表示または印刷する頁の番号 |
procedure TForm1.plQueryPrev1BeforeView(Sender: TObject; Page: Integer);
var
LPageStr : string;
begin
//文字のサイズ
plQueryPrev1.FontSize(12);
//頁番号の文字列を作成
LPageStr := IntToStr(Page) + '/' + IntToStr(plQueryPrev1.PageCount);
//X=105.0mm,Y=270.0mmに位置に文字列を描画
plQueryPrev1.TextOutCC(1050, 2700, LPageStr);
end;
OnNoPrintDraw(Sender, Page)
| このイベント内に書いたコードは印刷しません。また描画のクリップもしません。印刷はしないが、プレビューはしたい描画に使用します。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
コンポーネント自身 |
| Page |
Integer |
頁番号 |
OnReportStart(Sender, YPos)
| 引数 YPos の値を変更すると印刷開始 Y 座標値を変更できます。デフォルトは上マージンです。このイベント内で Canvas への描画が可能です。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
コンポーネント自身 |
| var YPos |
Integer |
上マージンの値
このY座標値から罫線を描画する |
OnReportEnd(Sender, Page, YPos)
| 全頁分の描画が終了する直前に発生します。このイベント後に最終頁のメタファイルイメージの作成が終了します。このイベント内では Canvas への描画が可能です。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
コンポーネント自身 |
| Page |
Integer |
現在の頁番号で、PageCount プロパティに等しい値 |
| YPos |
Integer |
描画を終了した頁の一番下の横罫線の Y 座標値 |
OnHeader(Sender, Page, YPos)
| 他のイベント内でもヘッダ部やフッタ部に描画コードを書くことはできますが、このイベントではヘッダマージンの値を引数から取得できます。このイベント内では Canvas への描画ガ可能です。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
コンポーネント自身 |
| Page |
Integer |
頁番号 |
| YPos |
Integer |
ヘッダマージンの値 |
OnFooter(Sender, Page, YPos)
| 他のイベント内でもヘッダ部やフッタ部に描画コードを書くことはできますが、このイベントでは、フッタマージンの値を引数から取得できます。このイベント内では Canvas への描画が可能です。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
コンポーネント自身 |
| Page |
Integer |
頁番号 |
| YPos |
Integer |
フッタマージンの値 |
OnBeforePrintCell(Sender,
Rect,
ACol,
ARow,
PageRow,
Text,
fDataRow)
引数の Text の値を変更すると、描画する内容を変更することができます。
このイベント内では、Canvas への描画が可能です。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
コンポーネント自身 |
| Rect |
TRect |
ACol と ARow で決まる矩形領域の TRect 構造体 |
| ACol |
Integer |
セルの列番号
一番左が 0 |
| ARow |
Integer |
fDataRow = True の時データ行の番号で 0 からの値
0 はタイトル行
fDataRow = False の時は集計行
Row = 0 が一番内側の小計行
|
| PageRow |
Integer |
この頁だけの行番号
頁が変わる度に 0 から始まり、0 はタイトル行 |
| var Text |
String |
セルの文字列
このテキストを変更すると描画内容を変更できる |
| fDataRow |
Boolean |
True の時はデータ行で。False の時は集計行 |
OnBeforePrintCell(Sender,
Rect,
ACol,
ARow,
PageRow,
Text,
fDataRow)
| このイベントを定義すると、全てのセルのデータを描画しません。罫線は描画します。セルに独自の内容を描画したい場合に使用します。このイベント内では、Canvas への描画が可能です。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
コンポーネント自身 |
| Rect |
TRect |
ACol と ARow で決まる矩形領域の TRect 構造体 |
| ACol |
Integer |
セルの列番号
一番左が 0 |
| ARow |
Integer |
fDataRow = True の時はデータの行番号
0 から始まる値。ただし 0 の時はタイトル行
fDataRow = False の場合は集計行
Row = 0 の時が一番内側の小計行
|
| PageRow |
Integer |
この頁だけの行番号
頁が変わる度に 0 から始まり、0 はタイトル行 |
| Text |
String |
セルの文字列
OnBeforezPrintCell イベントと違い、このテキストを変更しても効です。参照用 |
| fDataRow |
Boolean |
True の時はデータ行
False の時は集計行 |
OnAfterGroupPrint(Sender, ChangePage, YPos)
Grouping を Ture にした項目の描画が終了する度に発生します。複数の項目を Ture にしている場合は、最初の項目のグループ (項目値が同じデータ) を描画した後、またはグループ計 (小計) の描画後に発生します。
引数の YPos の値を変更すると、次の行と間に空白を挿入することができます。また、PageHeight (PrintHeight) と CellHeight の値から、後何行描画可能かも計算できます。このイベント内では、Canvas への描画が可能です。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
コンポーネント自身 |
| ChangePage |
Boolean |
True の時は印刷後改頁する |
| var YPos |
Integer |
次のデータの描画開始Y座標値
ChangePage が True の時は意味のない値 |
OnPrintBtnClick(Sender, CanPrint)
| プレビューフォームの [印刷 ]ボタンで、印刷ダイアログを表示した時に発生します。このイベント内では Canvas への描画はできません。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
プレビューフォーム |
| var CanPrint |
Boolean |
この値を False にすると印刷しない
デフォルトは Ture で印刷する |
| 各頁のメタファイをプリンタに出力した後に発生します。このイベント内では、Canvas への描画はできません。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
本コンポーネント |
| Page |
Integer |
出力した頁番号 |
| プレビューフームを表示する際に発生します。TForm の OnShow イベントと同様の使い方ができます。プレビューフォームのユニット内に印刷用のコードを書く時は、この OnFormShow 内に書きます。ただし、Canvas への描画はできません。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
プレビューフォーム |
OnFormClose(Sender, Action)
プレビューフームを閉じた時に発生します。TForm の OnClsoe と同じです。
このイベント内では、Canvas への描画はできません。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
プレビューフォーム |
| var Action |
TCloseAction |
TForm の Action と同じ |
| Close メソッドが呼ばれた時、あるいは、システムの閉じる動作を行った時に発生します。TForm の OnCloseQuery と同じです。このイベント内では、Canvas への描画はできません。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
プレビューフォーム |
| var CanClsoe |
Boolean |
TForm の CanClose と同じ |
| プレビューフォームが破棄された時に発生します。TForm の OnDestroy と同じです。このイベント内では、Canvas への描画はできません。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
プレビューフォーム |
|