- Код: Выделить всё
procedure TForm1.frReport1EnterRect(Memo: TStringList; View: TfrView);
var
bmp : TBitmap;
Ser: TPieSeries;
Chart: TChart;
begin
if View.Name='Chart' then
begin
{ создание объектов }
bmp := TBitmap.Create;
Chart := TChart.Create(Nil {self});
Chart.Width:=Round(View.Width);
Chart.Height:=Round(View.Height);
Ser := TPieSeries.Create({Chart} nil);
Chart.AddSeries(Ser);
try
{ наполнение данными }
Ser.AddY(22, 'Avito'{, clGreen});
Ser.AddY(5, 'Tvil'{, clRed});
Ser.AddY(8, 'Sutochno'{, clBlue});
Ser.Active:=True;
Chart.Visible:=True;
{ вывод через bitmap в документ отчёта }
bmp.SetSize(Round(View.Width), Round(View.Height));
bmp.Canvas.Brush.Color := {clWhite} clSkyBlue;
bmp.Canvas.FillRect(0, 0, bmp.Width, bmp.Height);
Chart.PaintTo(bmp.Canvas, 0, 0);
TFrPictureView(View).Picture.Bitmap := bmp;
finally
Chart.Free;
//Ser.Free;
bmp.Free;
end;
end;
end;
Результат: область изображения закрашивается в цвет фона, но сам график не рисуется. Полдня мучаюсь, не пойму в чём проблема.