Chart1.AddSeries(TBarSeries.Create(owner));
Chart1.Series[0].clear;
Chart1.Series[0].add(0,'数据1',clred);
Chart1.Series[0].add(3.9,'数据1',clGreen);
Chart1.Series[0].add(4.8,数据1',clBlue);
Chart1.Series[0].clear;
Chart1.Series[0].add(0,'数据1',clred);
Chart1.Series[0].add(3.9,'数据1',clGreen);
Chart1.Series[0].add(4.8,数据1',clBlue);
Debugger Exception Notification
---------------------------
Project main.exe raised exception class EListError with message 'List index out of bounds (2)'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
如上报错
procedure TfrmCharPrjAsset.CreateChart(Title : string;GPAsset,ZQAsset,HGAsset,Cash:Extended);
var
CharPrjAsset : TChart;
series : TPieSeries ;
begin
CharPrjAsset := TChart.Create(Application);
Series := TPieSeries.Create(Application);
try
CharPrjAsset.Parent := pnlChars;
CharPrjAsset.Name := 'char'+ Title;
CharPrjAsset.Title.Font.Size := 16;
CharPrjAsset.Title.Text.Text := Title;
CharPrjAsset.OnDBlClick := pnlChars.OnClick ;
CharPrjAsset.BevelInner := bvRaised;
CharPrjAsset.BevelOuter := bvLowered;
CharPrjAsset.Legend.TextStyle := ltsRightValue;
CharPrjAsset.Legend.Alignment := labottom ;
CharPrjAsset.Legend.ShadowSize := 0;
CharPrjAsset.Legend.ColorWidth := 5;
CharPrjAsset.Legend.Font.Size := 8 ;
CharPrjAsset.Left:= CharPrjAsset.Parent.ClientRect.Left+1 ;
CharPrjAsset.Top := CharPrjAsset.Parent.ClientRect.Top-1;
series.Name := 'series'+ Title;
series.Circled := true;
series.ParentChart := CharPrjAsset;
series.Marks.ArrowLength := 1;
series.Marks.Style := smsPercent;
if (GPAsset+ZQAsset+HGAsset+Cash)=0 then
begin
// messagedlg('组合'+Title+'资产为零!这可能是个新组合.',mtwarning,[ mbOK ],0);
series.AddPie(GPAsset,'股票资产',clWhite);
series.AddPie(ZQAsset,'债券资产',clWhite);
series.AddPie(HGAsset,'回购资产',clWhite);
series.AddPie(Cash,'现金',clWhite);
end
else
begin
series.AddPie(GPAsset,'股票资产',clRed);
series.AddPie(ZQAsset,'债券资产',clYellow);
series.AddPie(HGAsset,'回购资产',clBlue);
series.AddPie(Cash,'现金',clGreen);
end;
except
on E:exception do
begin
CharPrjAsset.Free;
series.Free;
end;
end;
end;
procedure TfrmCharPrjAsset.CreateChart(Title : string;GPAsset,ZQAsset,HGAsset,Cash:Extended);
var
CharPrjAsset : TChart;
series : TPieSeries ;
begin
CharPrjAsset := TChart.Create(Application);
Series := TPieSeries.Create(Application);
try
CharPrjAsset.Parent := pnlChars;
CharPrjAsset.Name := 'char'+ Title;
CharPrjAsset.Title.Font.Size := 16;
CharPrjAsset.Title.Text.Text := Title;
CharPrjAsset.OnDBlClick := pnlChars.OnClick ;
CharPrjAsset.BevelInner := bvRaised;
CharPrjAsset.BevelOuter := bvLowered;
CharPrjAsset.Legend.TextStyle := ltsRightValue;
CharPrjAsset.Legend.Alignment := labottom ;
CharPrjAsset.Legend.ShadowSize := 0;
CharPrjAsset.Legend.ColorWidth := 5;
CharPrjAsset.Legend.Font.Size := 8 ;
CharPrjAsset.Left:= CharPrjAsset.Parent.ClientRect.Left+1 ;
CharPrjAsset.Top := CharPrjAsset.Parent.ClientRect.Top-1;
series.Name := 'series'+ Title;
series.Circled := true;
series.ParentChart := CharPrjAsset;
series.Marks.ArrowLength := 1;
series.Marks.Style := smsPercent;
if (GPAsset+ZQAsset+HGAsset+Cash)=0 then
begin
// messagedlg('组合'+Title+'资产为零!这可能是个新组合.',mtwarning,[ mbOK ],0);
series.AddPie(GPAsset,'股票资产',clWhite);
series.AddPie(ZQAsset,'债券资产',clWhite);
series.AddPie(HGAsset,'回购资产',clWhite);
series.AddPie(Cash,'现金',clWhite);
end
else
begin
series.AddPie(GPAsset,'股票资产',clRed);
series.AddPie(ZQAsset,'债券资产',clYellow);
series.AddPie(HGAsset,'回购资产',clBlue);
series.AddPie(Cash,'现金',clGreen);
end;
except
on E:exception do
begin
CharPrjAsset.Free;
series.Free;
end;
end;
end;
procedure TfrmCharPrjAsset.CreateChart(Title : string;GPAsset,ZQAsset,HGAsset,Cash:Extended);
var
CharPrjAsset : TChart;
series : TPieSeries ;
begin
CharPrjAsset := TChart.Create(Application);
Series := TPieSeries.Create(Application);
try
CharPrjAsset.Parent := pnlChars;
CharPrjAsset.Name := 'char'+ Title;
CharPrjAsset.Title.Font.Size := 16;
CharPrjAsset.Title.Text.Text := Title;
CharPrjAsset.OnDBlClick := pnlChars.OnClick ;
CharPrjAsset.BevelInner := bvRaised;
CharPrjAsset.BevelOuter := bvLowered;
CharPrjAsset.Legend.TextStyle := ltsRightValue;
CharPrjAsset.Legend.Alignment := labottom ;
CharPrjAsset.Legend.ShadowSize := 0;
CharPrjAsset.Legend.ColorWidth := 5;
CharPrjAsset.Legend.Font.Size := 8 ;
CharPrjAsset.Left:= CharPrjAsset.Parent.ClientRect.Left+1 ;
CharPrjAsset.Top := CharPrjAsset.Parent.ClientRect.Top-1;
series.Name := 'series'+ Title;
series.Circled := true;
series.ParentChart := CharPrjAsset;
series.Marks.ArrowLength := 1;
series.Marks.Style := smsPercent;
if (GPAsset+ZQAsset+HGAsset+Cash)=0 then
begin
// messagedlg('组合'+Title+'资产为零!这可能是个新组合.',mtwarning,[ mbOK ],0);
series.AddPie(GPAsset,'股票资产',clWhite);
series.AddPie(ZQAsset,'债券资产',clWhite);
series.AddPie(HGAsset,'回购资产',clWhite);
series.AddPie(Cash,'现金',clWhite);
end
else
begin
series.AddPie(GPAsset,'股票资产',clRed);
series.AddPie(ZQAsset,'债券资产',clYellow);
series.AddPie(HGAsset,'回购资产',clBlue);
series.AddPie(Cash,'现金',clGreen);
end;
except
on E:exception do
begin
CharPrjAsset.Free;
series.Free;
end;
end;
end;
因为我不是在TCHART所在的单元调用,而是在别的地方的一个过程里,
所以需要调用,
否则出错为,[Error] com_unit.pas(218): Undeclared identifier: 'TBarSeries'
在 Series 定义的。