2011/8/5 (金) 21:51:03 Mr,XRAY |
▼ ニールさん,こんにちは.
> データベース上に画像のファイルパスのフィールドがあり
> そのフィールドを使って、画像を印字したいのですが
画像やテキストデータ等,いわゆるBlob型とかバイナリデータ等は
データベースで扱い方が違う場合があります.またフォントサイズや描画の方式も
その度に違う場合も考えられます.
そこで,以下のイベント等で処理してください.
OnAfterLabelDraw
OnBeforeLabelDraw
OnBeforeDataDraw
以下は,OnBeforeLabelDrawイベントを使用した例です.
BDEで,ParadoxのDBDEMOSのbiolife.dbテーブルのGraphic項目を印刷しています.
Windows XP(SP3) + Delphi 2010 Pro
http://mrxray.on.coocan.jp/Delphi/zipothers/plTackPrev_DBGraphic.zip
procedure TForm1.plTackPrev1BeforeLabelDraw(Sender: TObject; Rect: TRect; ARow,
ACol, LabelNo: Integer);
var
BMP : TBitmap;
begin
BMP := TBitmap.Create;
try
//ここはデータベースによって異なる
BMP.Assign(TBlobField(Table1.FieldByName('Graphic')));
//RectはラベルのTRectなので,この値を変更すれば描画位置変更可能
//もちろん,他のTCanvasの描画メソッドも使用可能
Rect.Left := Rect.Left + 100;
Rect.Right := Rect.Left + 500;
plTackPrev1.Canvas.StretchDraw(Rect, BMP);
finally
BMP.Free;
end;
end;
よろしく.何か問題がありましたら,またお願いします.
ちょっと太り気味の魚になっている
ちゃんと縦横比を考慮した方がいいだろう
|
|