- Код: Выделить всё
procedure TForm1.GenerateSourcesChart({var} AChart: TChart);
const
// Цвета как в LibreOffice
SegmentColors: array [0..9] of TColor = (
TColor($864500),
TColor($0E42FF),
TColor($20D3FF),
TColor($1C9D57),
TColor($21007E),
TColor($FFCA83),
TColor($044031),
TColor($00CFAE),
TColor($6F1F4B),
TColor($0E95FF)
);
var
Ser: TPieSeries;
DS: TDbChartSource;
i:Integer;
begin
Ser := TPieSeries.Create(AChart {nil});
ds:=TDbChartSource.Create({nil} Ser);
AChart.AddSeries(Ser);
AChart.AxisVisible:=False;
Ser.Marks.Style:=smsLabelPercent;
ser.InnerRadiusPercent := 25 ;
ds.DataSource:=DataModule1.SourcesStatsDataSource;
ds.FieldY:='Кол-во броней';
ds.FieldText:='Название';
ser.Source:=ds;
// Цвета
for i :=0 to Ser.Count-1 do
begin
if i > High(SegmentColors) then
Break;
Ser.SetColor(i, SegmentColors[i])
end;
Ser.Active:=True;
end;
Естественно не работает:
Как тогда это сделать? Спасибо.