0

一部の値の ValueColor が clNone に設定されているライン シリーズをプロットすると、それらのポイントが存在しないか、または非表示であるかのようにラインが表示されます。

しかし、同じライン シリーズに対して TCrossFunction を使用すると、それらのポイントが表示されているかのように動作します。

最初の画像は、クロスポイント間のポイントの ValueColor が clNone でない場合に、オレンジ色の「X」記号で示されるクロスポイントを示しています。

ここに画像の説明を入力

この画像は、クロスポイント間のポイントの ValueColor プロパティが clNone に設定されているにもかかわらず、クロスポイントがまだ同じ位置にあることを示しています。

ここに画像の説明を入力

ところで、プロットする前に CheckDataSource を呼び出してクロスポイントを更新しました。

クロスポイント関数が ValueColor プロパティを尊重するようにするにはどうすればよいですか?

4

1 に答える 1

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にはおそらく何かが組み込まれていますが、私はそれを見つけていません。

于 2013-01-29T20:58:49.037 に答える