NewSeries := TLineSeries.Create(Self);
.....
Chart1.AddSeries(NewSeries);
我有个按钮,有个COMBOBOX,根据COMBOBOX的不同直,在CHART1里显示不同的图形,
比如COMBOBOX里有4项的话,那我的CHART1里就能显示4条曲线,可是点一次就加一条,
会出现很多重复的曲线,怎么能控制一种情况只显示一条曲线?
.....
Chart1.AddSeries(NewSeries);
我有个按钮,有个COMBOBOX,根据COMBOBOX的不同直,在CHART1里显示不同的图形,
比如COMBOBOX里有4项的话,那我的CHART1里就能显示4条曲线,可是点一次就加一条,
会出现很多重复的曲线,怎么能控制一种情况只显示一条曲线?
...
Chart1.Series[0].Clear;
Chart1.Series[0].Add(sValue1, sLable1);
Chart1.Series[0].Add(sValue2, sLable2);
...
具体用ComboBox1.Items.AddObject(),用来指示是否
已经加过该种图形了//初始化
ComboBox1.Items.AddObject('text',object)
//取object
ComboBox1.Items.Objects[i]
to :我觉得你说的这种方法可行,能写个简单的小例子吗?没用过addobject
如果是这样的话,那小毛驴的AddObject可以是一种解决方法,还有一种更简单的方法:
用一个字符串sClickedItems保存点击过的ComboBox项对应的ItemIndex,两个数字之间随便用一个什么符号分隔开(如“1, 2, 3”),判断该项是不是已经点过只需要判断Pos(IntToStr(ComboBox1.ItemIndex), sClickedItems)的值就可以了,如果点击过了就不作任何处理,如果没点击过则sClickedItems := sClickedItems + ',' + IntToStr(ComboBox1.ItemIndex)
with ComboBox1.Items do
begin
Clear;
AddObject('曲线1', nil);
AddObject('曲线2', nil);
AddObject('曲线3', nil);
AddObject('曲线4', nil);
end;
当点击一个ComboBox1的Items[i]时,
判断ComboBox1.Objects[i] 是否为 nil,为nil时创建新的Series,并将该Series赋值给ComboBox1.Objects[i],如果不为nil则不做任何操作。