Delphi Programming / Object Pascal

[掲載 2001年01月06日] [更新 2016年04月30日] DBGrid 印刷コンポーネント |
DBGrid 印刷コンポーネント
イベント |
| 動作確認等 |
図は Windows 7 U64(SP1) + Delphi XE(UP1) Pro で作成 |
| Ver4.0 では、プレビューフォーム関係のイベントを追加しました。これにより、プレビューフォームまたは、継承したプレビューフォームを表示しなくてもプレビューフォームのイベントを作成することが可能となりました。 |
 |
図1
イベント一覧 |
OnBeforeView(Sender, Page)
| 各々の頁をプレビューまたは印刷する前に発生するイベントです。このイベント発生時点で頁数プロパティが確定しています。したがって、このイベントを利用すると頁数の印刷が可能です。このイベント内では Canvas への描画が可能です。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
コンポーネント自身 |
| Page |
Integer |
これから表示または印刷する頁の番号 |
procedure TForm1.plDBGridPrev1BeforeView(Sender: TObject; Page: Integer);
var
LPageStr : string;
begin
//文字のサイズ
plDBGridPrev1.FontSize(12);
//頁番号の文字列を作成
LPageStr := IntToStr(Page) + '/' + IntToStr(plDBGridPrev1.PageCount);
//X=105.0mm,Y=270.0mmに位置に文字列を描画
plDBGridPrev1.TextOutCC(1050, 2700, LPageStr);
end;
OnNoPrintDraw(Sender, Page)
| このイベント内に書いたコードは印刷しません。また描画のクリップもしません。印刷はしないが、プレビューはしたい描画に使用します。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
コンポーネント自身 |
| Page |
Integer |
頁番号 |
OnReportStart(Sender, YPos)
| 引数 YPos の値を変更すると印刷開始 Y 座標値を変更できます。デフォルトは上マージンです。このイベント内で Canvas への描画が可能です。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
コンポーネント自身 |
| var YPos |
Integer |
上マージンの値
このY座標値から TDBGrid の罫線を描画する |
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)
| 各々のセルのデータの描画前に発生します。Canavas への描画が可能です。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
コンポーネント自身 |
| Rect |
TRect |
ACol と ARow で決まるセル描画矩形領域の TRect 構造体 |
| ACol |
Integer |
セルの列番号で、一番左が 0 |
| ARow |
Integer |
データの行番号で 0 から始まる値
ただし、0 はタイトル行 |
| PageRow |
Integer |
この頁だけの行番号
頁が変わる度に0から始まり、0 はタイトル行 |
| var Text |
String |
セルの文字列
このテキストを変更すると、該当するセルの描画内容を変更するができる |
OnPrintCell(Sender, Rect, ACol, ARow, PageRow, Text)
このイベントを定義するとセルの文字列を描画しません。このイベント内では Canvas への描画が可能です。セルのテキストを全て自前で描画する時に利用できます。
OnBeforePrintCell イベントでも、引数の Text の値を空文字にすれば、セルに文字列を描画しないようにすることができます。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
コンポーネント自身 |
| Rect |
TRect |
ACol と ARow で決まるセル描画矩形領域の TRect 構造体 |
| ACol |
Integer |
セルの列番号で、一番左が 0 |
| ARow |
Integer |
データの行番号で0から始まる値
ただし 0 はタイトル行 |
| PageRow |
Integer |
この頁だけの行番号
頁が変わる度に 0 から始まり、0 はタイトル行 |
| Text |
String |
セルの文字列。参照用 |
OnPrintBtnClick(Sender, CanPrint)
| プレビューフォームの[印刷]ボタンで、印刷ダイアログを表示した時に発生します。このイベント内では Canvas への描画はできません。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
プレビューフォーム |
| var CanPrint |
Boolean |
この値を False にすると印刷しない
デフォルトは Ture で印刷する |
| 各頁のメタファイをプリンタに出力した後に発生します。このイベント内では、Canvas への描画はできません。 |
| 引数 |
型 |
説明 |
| Sender |
TObject |
本コンポーネント |
| Page |
Integer |
出力した頁番号 |
| プレビューフームを表示する際に発生します。TForm の OnShow イベントと同様の使い方ができます。プレビューフォームの unit 内に印刷用のコードを書く時は、この 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 |
プレビューフォーム |
|