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