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


kuro  2009-12-02 00:44:08  No: 36354

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

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


  2009-12-28 22:43:55  No: 36355

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加