lazarus/components/tachart/demo/multi/frmstacked.pas

71 lines
1.5 KiB
ObjectPascal

unit frmStacked;
{$mode ObjFPC}{$H+}
interface
uses
SysUtils, Classes,
Forms, Controls, StdCtrls, ExtCtrls,
TAGraph, TAChartUtils, TASources, TAStyles, TASeries;
type
TStackedFrame = class(TFrame)
cbPercentage: TCheckBox;
ccsStacked: TCalculatedChartSource;
cgShowStackLevels: TCheckGroup;
ChartStyles: TChartStyles;
Chart: TChart;
AreaSeries: TAreaSeries;
BarSeries: TBarSeries;
LineSeries: TLineSeries;
pnStackedControls: TPanel;
rcsStacked: TRandomChartSource;
rgStackedSeries: TRadioGroup;
procedure cbPercentageChange(Sender: TObject);
procedure cgShowStackLevelsItemClick(Sender: TObject; Index: integer);
procedure rgStackedSeriesClick(Sender: TObject);
private
public
end;
implementation
{$R *.lfm}
procedure TStackedFrame.cbPercentageChange(Sender: TObject);
begin
ccsStacked.Percentage := cbPercentage.Checked;
end;
procedure TStackedFrame.cgShowStackLevelsItemClick(Sender: TObject; Index:
integer);
var
s: String;
i: Integer;
begin
Unused(Index);
s := '';
for i := 0 to cgShowStackLevels.Items.Count - 1 do begin
if cgShowStackLevels.Checked[i] then
s += Format('%d,', [i]);
ChartStyles.Styles[i].RepeatCount := Ord(cgShowStackLevels.Checked[i]);
end;
ccsStacked.ReorderYList := s[1..Length(s) - 1];
end;
procedure TStackedFrame.rgStackedSeriesClick(Sender: TObject);
var
i: Integer;
begin
i := rgStackedSeries.ItemIndex;
AreaSeries.Active := i = 0;
BarSeries.Active := i = 1;
LineSeries.Active := i = 2;
end;
end.