StringGridのDrawCellイベントで、TBitmapを貼り付けたりしています。
そういった内容を印刷する場合、Printer.Canvasに対してPainttoを使用してあげればいいのですが、スクロールなどで見えていない部分が印刷できません。
どうすれば印刷できるのでしょうか。
よろしくお願いします。
OnDrawCellイベントで
SenderがTStringGridかTPrinterかを判断して対象のCanvasを決め
そのCanvasに描くような処理にしておくと。
var
TempCanvas: TCanvas;
begin
if Sender is TStringGrid then TempCanvas := (Sender as TStringGrid).Canvas
else if Sender is TPrinter then TempCanvas := (Sender as TPrinter ).Canvas;
{ TempCanvasに対して描画を行う }
Printerで描くときも(必要ならば)枠線を描いた後に、Col, Row, Rectを
きちんと与えてColCount * RowCount分同じイベントを直接コールすれば
Printer.Canvaasに描いてくれるのでは。
ツイート | ![]() |