procedure TForm1.FormCreate(Sender: TObject); var int_i:integer; Typell:tpieSeries; SeriesClass:TChartSeriesClass; NewSeries:array of TChartSeries; begin setlength(NewSeries,20); if Chart1.SeriesCount>0 then Chart1.Series[0].Destroy; Typell:=tpieSeries.Create(self); Chart1.AddSeries(Typell); for int_i:=0 to 19 do begin Colors:=Colors+2000;//Colors为全局变量类型为integer,初始值为655536 SeriesClass:=TpieSeries; NewSeries[int_i]:=SeriesClass.Create(Self); NewSeries[int_i].Title:='fff'; NewSeries[int_i].SeriesColor:=Colors; NewSeries[int_i].ParentChart:=Chart1; NewSeries[int_i].Clear; Chart1.Series[0].Add(10,'ddd',NewSeries[int_i].SeriesColor); end;
我有一种比较简洁的方法: 所需控件: Chart1(添加饼形series1) ColorDialog1,Button1 代码: Button1Click() var t:Integer; color:Tcolor; Series1.Clear; Randomize; for t:=1 to 12 do begin ShowMessage('请选择第'+IntToStr(t)+'部分的颜色 '); if ColorDialog1.Execute then color:=ColorDialog1.color; Series1.Addy(Random(70),ShortMonthNames[t],color); end;