1

我正在使用 Steema Software 和 Delphi 6 的 TeeChart Pro v7.06。在我的项目中有 TChart(其 BottomAxis.Automatic = False)和 TChartScrollBar(滚动)。在 TChart 中有几个系列不适合 TChart 的宽度,所以我使用 TChartScrollBar。

我需要将图表导出到 TBitmap。而且我不知道该怎么做,因为我知道的所有 TChart 方法都只导出 TChart 的可见部分!

有什么方法可以导出整个 TChart,而不仅仅是可见部分?

谢谢!

4

2 回答 2

2

如果您正在使用分页功能,您可以暂时禁用它以打印整个系列并在打印后再次重置。例如,在表单上有一个 TChart、一个 TChartScrollBar 和一个 TButton:

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;
于 2012-01-09T10:10:23.370 回答
1

如果您的图表有很多页面,您可以简单地使用 tchart.createteebitmap 函数,滚动浏览所有页面。

例如(伪代码)

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

这会将所有图表页面导出到单独的位图。如果您只需要 1 个位图,则需要手动将图表画布导出到元文件,然后将其发送到打印机。

于 2012-01-06T09:04:41.210 回答