Używam TeeChart Pro v7.06 Steema Software i Delphi 6. W moim projekcie są TChart (którego BottomAxis.Automatic = False) i TChartScrollBar (do przewijania). W TChart jest kilka serii, które nie pasują do szerokości TChart, więc używam TChartScrollBar.
Muszę wyeksportować wykres do TBitmap. I nie wiem, jak to zrobić, ponieważ wszystkie metody TChart, które znam, eksportują tylko widoczną część TChart!
Czy są jakieś sposoby na wyeksportowanie całej TChart, nie tylko widocznej części?
Dzięki!
Odpowiedzi:
1 dla odpowiedzi № 1Jeśli Twój wykres ma wiele stron, możesz po prostu użyć funkcji tchart.createteebitmap, przewijając wszystkie strony.
Na przykład (pseudo-kod)
For i:= 0 To chart.numpages-1 do
Chart.pagenum := i;
Chart.createteebitmap(bitmap);
End;
Spowoduje to wyeksportowanie wszystkich stron wykresów w celu oddzielenia bitmap. Jeśli potrzebujesz tylko jednej bitmapy, musisz ręcznie wyeksportować płótno wykresów do metapliku, a następnie wysłać je do drukarki.
2 dla odpowiedzi nr 2
Jeśli korzystasz z funkcji stronicowania, możeszwyłącz ją tymczasowo, aby wydrukować całą serię i zresetować ją ponownie po wydrukowaniu. Na przykład, mając TChart, TChartScrollBar i TButton w formularzu:
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;