StringGrid上のすべてを印刷するには?


kuro  2009-12-01 15:44:08  No: 36354  IP: 192.*.*.*

StringGridのDrawCellイベントで、TBitmapを貼り付けたりしています。

そういった内容を印刷する場合、Printer.Canvasに対してPainttoを使用してあげればいいのですが、スクロールなどで見えていない部分が印刷できません。
どうすれば印刷できるのでしょうか。
よろしくお願いします。

編集 削除
 2009-12-28 13:43:55  No: 36355  IP: 192.*.*.*

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に描いてくれるのでは。

編集 削除