unit ChartUnit;
interface
uses
{$IF CompilerVersion >= 16} Winapi.Windows, Winapi.Messages, System.SysUtils, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, VclTee.TeeGDIPlus, VclTee.TeEngine, VclTee.Series, VclTee.TeeProcs, VclTee.Chart,
{$ELSE}Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, TeEngine, Series, TeeProcs, Chart,
{$ENDIF} HPDFDoc;
type
TForm1 = class(TForm)
RadioGroup1: TRadioGroup;
DemoChart: TChart;
BarSeries1: TBarSeries;
BarSeries2: TBarSeries;
BarSeries3: TBarSeries;
Panel1: TPanel;
Label1: TLabel;
RadioGroup2: TRadioGroup;
ComboBox1: TComboBox;
Button1: TButton;
procedure RadioGroup1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure RadioGroup2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
Case RadioGroup1.ItemIndex of
0: BarSeries1.MultiBar:=mbNone;
1: BarSeries1.MultiBar:=mbSide;
2: BarSeries1.MultiBar:=mbStacked;
3: BarSeries1.MultiBar:=mbStacked100;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
H: Integer;
begin
DemoChart.View3D:=False;
Randomize;
{$IFDEF VER220}
with BarSeries1 do
for H:=1 to 12 do Add( Random(100),FormatSettings.ShortMonthNames[H],clTeeColor);
with BarSeries2 do
for H:=1 to 12 do Add( Random(100),FormatSettings.ShortMonthNames[H],clTeeColor);
with BarSeries3 do
for H:=1 to 12 do Add( Random(100),FormatSettings.ShortMonthNames[H],clTeeColor);
{$ELSE}
with BarSeries1 do
for H:=1 to 12 do Add( Random(100),ShortMonthNames[H],clTeeColor);
with BarSeries2 do
for H:=1 to 12 do Add( Random(100),ShortMonthNames[H],clTeeColor);
with BarSeries3 do
for H:=1 to 12 do Add( Random(100),ShortMonthNames[H],clTeeColor);
{$ENDIF}
ComboBox1.Items.Clear;
for H:=0 to DemoChart.SeriesCount-1 do
ComboBox1.Items.Add(DemoChart.Series[H].Name);
ComboBox1.ItemIndex:=0;
end;
procedure TForm1.RadioGroup2Click(Sender: TObject);
begin
With DemoChart.Series[ComboBox1.ItemIndex] as TBarSeries do
BarStyle:=TBarStyle(RadioGroup2.Itemindex);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
HotPDF: THotPDF;
ChartRect: TRect;
begin
HotPDF := THotPDF.Create(nil);
try
case RadioGroup1.ItemIndex of
0: HotPDF.FileName := 'PDFChart-Behind.pdf';
1: HotPDF.FileName := 'PDFChart-SideToSide.pdf';
2: HotPDF.FileName := 'PDFChart-Stacked.pdf';
3: HotPDF.FileName := 'PDFChart-Stacked100.pdf';
end;
HotPDF.BeginDoc;
ChartRect.Left := 0;
ChartRect.Right := 800;
ChartRect.Top := 0;
ChartRect.Bottom := 600;
DemoChart.PrintPartialCanvas( HotPDF.CurrentPage.Canvas, ChartRect );
HotPDF.EndDoc;
finally
HotPDF.Free;
end;
end;
end.