2012-01-06 39 views
1

Steema SoftwareとDelphi 6のTeeChart Pro v7.06を使用しています。私のプロジェクトにはTChart(BottomAxis.Automatic = False)とTChartScrollBar(スクロールする)があります。 TChartには、TChartの幅に収まらないいくつかのシリーズがあるので、TChartScrollBarを使用します。TChartをビットマップにエクスポートするにはどうすればよいですか?

グラフをTBitmapにエクスポートする必要があります。私が知っているすべてのTChartのメソッドは、TChartの可視部分だけをエクスポートするので、私はそれを行う方法がわかりません!

可視部分だけでなく、TChart全体をエクスポートする方法はありますか?

ありがとうございます!

答えて

1

グラフに多数のページがある場合は、tchart.createteebitmap関数を使用してすべてのページをスクロールできます。例えば

(擬似コード)

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

これは、ビットマップを分離するために、チャート・ページのすべてをエクスポートします。 1ビットマップだけが必要な場合は、手動でグラフキャンバスをメタファイルにエクスポートしてからプリンタに送信する必要があります。

+1

フム...ページングが動作しませんようですが、 'BottomAxis.Automatic = false'をしかし、私は' Chart1.BottomAxisを使用することができますね代わりに.SetMinMax'を使用します。とにかく、ありがとうございました! – tikskit

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; 
関連する問題