tikskit
tikskit

Reputation: 339

How do I export the TChart to the bitmap?

I'm using TeeChart Pro v7.06 of Steema Software and Delphi 6. In my project there are TChart (whose BottomAxis.Automatic = False) and TChartScrollBar (to scroll). In TChart there are several series that don't fit in the width of TChart, so I use TChartScrollBar.

I need to export the chart to TBitmap. And I don't know how to do it because all TChart's methods that I know export only a visible part of TChart!

Are there any ways to export the whole TChart, not only the visible part?

Thanks!

Upvotes: 1

Views: 5018

Answers (2)

Yeray
Yeray

Reputation: 5039

If you are using the paging feature, you could disable it temporally to print the whole series and reset it again after printing. For example, having a TChart, a TChartScrollBar and a TButton on a form:

uses Series, TeeEdit;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Chart1.View3D:=false;

  Chart1.AddSeries(TFastLineSeries).FillSampleValues(100);

  Chart1.Pages.MaxPointsPerPage:=10;

  ChartScrollBar1.Chart:=Chart1;
  ChartScrollBar1.Enabled:=true;
end;

procedure TForm1.Button1Click(Sender: TObject);
var tmpCount, tmpPage: Integer;
begin
  tmpCount:=Chart1.Pages.MaxPointsPerPage;
  tmpPage:=Chart1.Pages.Current;

  Chart1.Pages.MaxPointsPerPage:=Chart1[0].Count;

  with TChartPreviewer.Create(Self) do
  begin
    Chart:=Chart1;
    Execute;
  end;

  Chart1.Pages.MaxPointsPerPage:=tmpCount;
  Chart1.Pages.Current:=tmpPage;
end;

Upvotes: 2

Simon
Simon

Reputation: 9425

If your chart has many pages, you can simply use the tchart.createteebitmap function, scrolling through all pages.

For example (pseudo-code)

For i:= 0 To chart.numpages-1 do
  Chart.pagenum := i;
  Chart.createteebitmap(bitmap);
End;

This will export all of the charts pages to separate bitmaps. If you only require 1 bitmap then you will need to manually export the charts canvas to a Metafile and then send it to the printer.

Upvotes: 1

Related Questions