var bar: TbarSeries; pie: TpieSeries; begin //柱形图 Title.Text.Clear; Title.Text.Add('表名称'); bar := TbarSeries.Create(nil); bar.Clear; bar.ParentChart := DBChart1; bar.add(123,'name'); //饼图 if DBchart1.SeriesCount > 0 then DBchart1.Series[0].Free;//如果表中有图型将先FREE
bar: TbarSeries;
pie: TpieSeries;
begin
//柱形图
Title.Text.Clear;
Title.Text.Add('表名称');
bar := TbarSeries.Create(nil);
bar.Clear;
bar.ParentChart := DBChart1;
bar.add(123,'name');
//饼图
if DBchart1.SeriesCount > 0 then
DBchart1.Series[0].Free;//如果表中有图型将先FREE
Title.Text.Clear;
Title.Text.Add('表名称');
pie := TbarSeries.Create(nil);
pie.Clear;
pie.ParentChart := DBChart1;
pie.add(123,'name');
end;
1.
procedure TfrmMain.DrawChart(aIndex: Integer; aShow3D: Boolean);
var
tSeries: TChartSeries;
i: Integer;
begin
chtFir.Series[0].Clear;
tSeries := chtFir.Series[0]; case aIndex of //以下方法若不事先建好tSeries则执行不成功 因其用var传入
0: ChangeSeriesType(tSeries, TLineSeries);
1: ChangeSeriesType(tSeries, THorizBarSeries);
2: ChangeSeriesType(tSeries, TBarSeries);
3: ChangeSeriesType(tSeries, TPieSeries);
end; if aIndex = 3 then
tSeries.Marks.Style := smsLabelPercent
else
tSeries.Marks.Style := smsValue; aqChart.First;
for i := 0 to aqChart.RecordCount - 1 do
begin
tSeries.Add(aqChart.FieldByName('scount').AsFloat, aqChart.FieldByName('sname').AsString);
aqChart.Next;
end;
chtFir.View3D := aShow3D;
chtFir.AddSeries(tSeries);
end;2.{推荐}
procedure TfrmMain.DrawChart(aIndex: Integer; aShow3D: Boolean);
var
tSeries: TChartSeries;
i: Integer;
begin
tSeries := nil;
for i := 0 to chtFir.SeriesCount - 1 do
chtFir.Series[i].Free; case aIndex of
0: tSeries := TLineSeries.Create(self);
1: tSeries := THorizBarSeries.Create(self);
2: tSeries := TBarSeries.Create(self);
3: tSeries := TPieSeries.Create(self);
end; tSeries.Marks.Style := smsValue;
if aIndex = 3 then tSeries.Marks.Style := smsLabelPercent; tSeries.ColorEachPoint := true;
aqChart.First;
for i := 0 to aqChart.RecordCount - 1 do
begin
tSeries.Add(aqChart.FieldByName('scount').AsFloat, aqChart.FieldByName('sname').AsString);
aqChart.Next;
end; chtFir.View3D := aShow3D;
chtFir.AddSeries(tSeries);
end;3.调用方法:
procedure TfrmMain.bbtnFaceClick(Sender: TObject);
var
frmSet: TfrmSet;
begin
frmSet := TfrmSet.Create(self);
with frmSet do
if ShowModal = mrOk then
self.DrawChart(rgFace.ItemIndex, cbShow3D.Checked);
FreeAndNil(frmSet);
end;