mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-07-18 20:25:58 +02:00
71 lines
1.5 KiB
ObjectPascal
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.
|
|
|