当绘制一些线条系列,其中某些值的ValueColor设置为clNone时,该线条将显示为好像这些点不存在或不可见。
但是,当我对相同的线系列使用TCrossFunction时,它的行为就好像这些点可见。
第一张图片显示橙色'X'符号表示的交叉点,当它们之间的点的ValueColor不是clNone时。
此图像显示交叉点仍位于相同位置,即使它们之间的点已将其ValueColor属性设置为clNone。
顺便说一句,在绘图之前,我确实调用了CheckDataSource来刷新交叉点。
如何让交叉点功能尊重ValueColor属性?
答案 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可能会内置这样做,但我还没有找到它。