Question
“How can I render a control on my form, to my report?”
 
Solution
The following example uses the ReportBuilder PaintBox control to render a TProgressBar and a TGauge to a report. The TProgressBar is a TWinControl descendant and the TGauge is a TGraphicControl descendant.
Download:  RenderControlToPaintBox.zip
 
procedure TForm1.ppPaintBox1Print(Sender: TObject);
begin
  // size the paint box
  ppPaintBox1.spWidth := ProgressBar1.Width;
  ppPaintBox1.spHeight := ProgressBar1.Height;
  // use the TWinControl.PaintTo method to render to the PaintBox.Canvas
  ProgressBar1.PaintTo(ppPaintBox1.Canvas, 0, 0);
end;
type
  // used to provide access to a TGraphicControl.Canvas
  TMyGraphicControlAccess = class(TGraphicControl)
    public
      property Canvas;
  end;
procedure TForm1.ppPaintBox2Print(Sender: TObject);
var
  lSourceCanvas: TCanvas;
begin
  // size the paint box
  ppPaintBox2.spWidth := Gauge1.Width;
  ppPaintBox2.spHeight := Gauge1.Height;
  // get access to the TGraphicControl.Canvas
  lSourceCanvas := TMyGraphicControlAccess(Gauge1).Canvas;
  // Copy the image to the PaintBox.Canvas
  ppPaintBox2.Canvas.CopyRect(lSourceCanvas.ClipRect, lSourceCanvas, lSourceCanvas.ClipRect);
end;