/ / Jak wyeksportować TChart do bitmapy? - delphi, export, delphi-6, teechart, tbitmap

Jak wyeksportować TChart do bitmapy? - delphi, export, delphi-6, teechart, tbitmap

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 № 1

Jeś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;