我使用的是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个位图,则需要手动将图表画布导出到元文件,然后将其发送到打印机。