unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series, Buttons;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    BitBtn1: TBitBtn;
    Chart1: TChart;
    Label1: TLabel;
    Label2: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//dynamiczne wyświetlanie serii danych
procedure TForm1.BitBtn1Click(Sender: TObject);
var i:integer;
begin
  Label2.Caption:='';
  //liczba wykresów
  Label1.Caption:=Inttostr(Chart1.SeriesCount);
  //nazwy wykresów
  for i:=0 to Chart1.SeriesCount-1 do
  Label2.Caption:=label2.Caption+chart1.Series[i].Name+#13;
end;

{$J+}
procedure TForm1.Button1Click(Sender: TObject);
const i:integer=1;
var liniowy: TLineSeries;
begin
    liniowy:=TLineSeries.Create(Self);
    liniowy.ParentChart:=Chart1; //komponent Chart1 wstawiony z palety komponentów
    liniowy.Name:='linia'+Inttostr(i);
    liniowy.FillSampleValues(20);
    inc(i);
end;

//kasowanie wykresów tworzonych dynamicznie
procedure TForm1.Button2Click(Sender: TObject);
begin
  with Chart1 do
   if SeriesCount>1 then Series[0].Free;  //po wykasowaniu wykresu o numerze 0
// następuje automatyczne przenumerowanie wykresów, 1 staje się 0, 2 staje się 1 itd.
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   BitBtn1.Caption:='Liczba i nazwy'+#13+'wykresow';
end;

end.
