当ValueColor = clNone时,TCrossFunction与TLineSeries不一致

时间:2013-01-28 22:20:50

标签: delphi delphi-xe teechart

当绘制一些线条系列,其中某些值的ValueColor设置为clNone时,该线条将显示为好像这些点不存在或不可见。

但是,当我对相同的线系列使用TCrossFunction时,它的行为就好像这些点可见。

第一张图片显示橙色'X'符号表示的交叉点,当它们之间的点的ValueColor不是clNone时。

enter image description here

此图像显示交叉点仍位于相同位置,即使它们之间的点已将其ValueColor属性设置为clNone。

enter image description here

顺便说一句,在绘图之前,我确实调用了CheckDataSource来刷新交叉点。

如何让交叉点功能尊重ValueColor属性?

1 个答案:

答案 0 :(得分:2)

对于我的目的,看起来最简单和最快速的解决方案是在将它们置于CrossPoints函数之前过滤掉零点(ValueColor = clNone)。

这样的事情对我有用:

function create_non_null_series (series: TChartSeries): TChartSeries;
var
    i: Integer;
begin
    Result := TChartSeries.Create(nil);
    for i := 0 to series.Count-1 do
    begin
        if (not series.IsNull(i)) then
            Result.AddXY(series.XValue[i], series.YValue[i]);
    end;
end;

TChart可能会内置这样做,但我还没有找到它。