- Код: Выделить всё
- 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;
Естественно не работает:
Как тогда это сделать? Спасибо.


