如何将TChart导出为位图



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

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

是否有任何方法可以导出整个TChart,而不仅仅是可见部分?

谢谢!

如果您正在使用分页功能,您可以暂时禁用它来打印整个系列,并在打印后再次重置它。例如,在窗体上有一个TChart、一个TC哈特ScrollBar和一个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;

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

例如(伪代码)

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

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

相关内容

  • 没有找到相关文章

最新更新