TChart问题!请高手看看!!(100分)

  • 主题发起人 主题发起人 hgood
  • 开始时间 开始时间
H

hgood

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TDiagram.CreateSerises(dType: DiagramType);
var
Seri: TChartSeries;
i: integer;
bCreate: Boolean;
sType: TChartSeriesClass;
begin
begin
case dType of
dBar:
Seri := TBarSeries.Create(nil);
dLine:
Seri := TlineSeries.Create(nil);
dFastLine:
Seri := TFastLineSeries.Create(nil);
dPie:
Seri := TPieSeries.Create(nil);
end;
if Assigned(Seri) then
begin
CurChart.SeriesList.Clear;
Seri.Clear;
//--加入填充数据代码
CurChart.AddSeries(Seri);
SetCurSeri(Seri); //把当前的Serices附给一个全局变量 CurSeri
Seri.ColorEachPoint := True;
//CurChart.Gradient.Visible := true;
DrawDiagram();
end;
end;
//----以上代码完全可能运行,现在有一个问题是我在另一个From里加入一个TChart,Sericeslist为空!我目的是想把CurSeri动态加入From里的TChart
代码如下:
procedure TDiagram.SetDiagramProperty;
var
MySeri: TChartSeries;
begin
frmSetDiagram :=TfrmSetDiagram.Create(nil);
with FrmSetDiagram do
begin
mySeri :=CurSeri;
Chart2.AddSeries(MySeri);
ShowModal;
end;
end;
//--这段代码也可以通过,也确实把当前的CurSeri附给了另一个From(TfrmSetDiagram)里的
TChart,问题是原来的Chart却被清空了!即上段代码中的 (CurChart 全局变量)SeriesList
为空了!也就是说第二段代码附值把它"搬移了",不知各位有没有遇到过这样的问题!?
像这样的情况有没有变通的方法?


 
难道没有知道吗?
 
给函数加一个boolean型参数来决定是否清除CurChart.SeriesList
 
To:realLearning,
我没有清除动作啊啊!,你能不能说清楚点?
 
真的没有会啊?
 
if Assigned(Seri) then
begin
CurChart.SeriesList.Clear;
 
The AddSeries method adds a new Series component to the Chart.
It's exactly the same as setting the Series.ParentChart property to the Chart.
你的MySeri是对CurSeri的引用,调用addseries相当于把curseri的parentchart设置为
另一Chart,原来的chart上就没有CurSeri了,因此需要先create MySeri然后assign(CurSeri)才可以。
 
procedure TDiagram.SetDiagramProperty;
var
MySeri: TChartSeries;
begin
frmSetDiagram :=TfrmSetDiagram.Create(nil);
with FrmSetDiagram do
begin
mySeri:=TChartSeriesclass(CurSeri.classtype).create(self);
mySeri.assign(CurSeri);
Chart2.AddSeries(MySeri);
ShowModal;
end;
end;
 
迷糊的方法可以!谢谢!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部