Delphi 10に付属しているSeattle Subscription Update 1とTeeChart Standard v2015.15.150420を使用しています。TeeChart関数データソースを追加するとアクセス違反が発生する
新しいVCLアプリケーションの空白のフォームにTDBChartコンポーネントをドロップします。次に、フォームのOnCreateイベントのhttp://www.teechart.net/docs/teechart/vclfmx/tutorials/UserGuide/Tutorials/tutorial7.htm#AddFunctionにある「関数の追加」チュートリアルで概説したサンプルコードを使用します。このコードでは、すべてが正常に動作し、サンプル値が入力された2つの棒グラフと、2つの棒グラフの平均を表す1つの線分が得られます。
問題は、線分で表現された平均値が必要ではなく、たとえば棒グラフで表現したい場合に発生します。 TLineSeriesをTBarSeriesに変更してプログラムを実行すると、最初の棒グラフをデータソースとして関数シリーズ(tmpLineSeries)に追加すると、 "0x0066d665:読み取りアドレス0x00000198"になります。 tmpLineSeries.DataSources.Add(tmpBarSeries1);
。
ここに問題コードがあります(下記の「AV発生」を参照)。説明したように作業チュートリアルの例から変更のみのコードがあったことに注意してください、TBarSeriesに変更されていたtmpLineSeriesがTLineSeriesタイプの代わりに入力します。
procedure TForm1.FormCreate(Sender: TObject);
var tmpBarSeries1,
tmpBarSeries2 : TBarSeries;
tmpLineSeries : TBarSeries;
begin
//Add 2 data Series
tmpBarSeries1:=TBarSeries.Create(Self);
tmpBarSeries2:=TBarSeries.Create(Self);
DBChart1.AddSeries(tmpBarSeries1);
DBChart1.AddSeries(tmpBarSeries2);
//Populate them with data (here random)
tmpBarSeries1.FillSampleValues(10);
tmpBarSeries2.FillSampleValues(10);
//Add a series to be used for an Average Function
tmpLineSeries:=TBarSeries.Create(Self);
DBChart1.AddSeries(tmpLineSeries);
//Define the Function Type for the new Series
tmpLineSeries.SetFunction(TAverageTeeFunction.Create(Self));
//Define the Datasource for the new Function Series
//Datasource accepts the Series titles of the other 2 Series
tmpLineSeries.DataSources.Clear;
tmpLineSeries.DataSources.Add(tmpBarSeries1); ////// AV occurs here!!!
tmpLineSeries.DataSources.Add(tmpBarSeries2);
// *Note - When populating your input Series manually you will need to
// use the Checkdatasource method
// - See the section entitled 'Defining a Datasource'
//Change the Period of the Function so that it groups averages
//every 2 Points
tmpLineSeries.FunctionType.Period := 2;
end;
TeeChartまたはIにかかわる問題であることのいずれかのようですLineSeriesには必要ないBarSeriesに必要な設定ステップがありません。
私が間違っていることを誰にでも見せることができますか、代わりにバグの回避策を提案できますか?私は理解しているように、これはデルファイ(私はすでにデルファイの最新アップデートになっています)をアップグレードすることによってのみ行うことができるため、この段階ではTeeChartの最新バージョンへのアップグレードはオプションではないと思います。 TeeChartのスタンドアロン版。
ありがとうございました!提案した回避策が機能します。バグを報告して修正してくれてありがとう。 –