C++ Builder 10.2 Tokyo | XE4 > TeeChart > マウスクリック位置の値を表示する > 10.2 Tokyo:動作する | XE4: エラー > 10.2 Tokyoでもエラー


10.2 Tokyo

動作環境
RAD Studio 10.2 Tokyo Update 3

TeeChartにてマウスクリック位置の数値を表示する方法の調査。

以下にDelphiコードがある。
https://www.steema.com/support/viewtopic.php?t=5489

に基づき、グラフ表示をした上で、上記のDelphiコード相当を実装した。

Unit1.cpp
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include <DateUtils.hpp>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
    Chart1->Series[0]->XValues->DateTime = true;
    Chart1->BottomAxis->DateTimeFormat = L"nn:ss";

    TDateTime dt;

    dt = Now();

    double yval;
    for (int idx=0; idx < 10; idx++) {
        yval = (1+ idx) % 2;
        Series1->AddXY(dt, yval, "", clRed);
        dt = IncSecond(dt, 1);
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Chart1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
    int index = Series1->Clicked(X, Y);

    if (index != -1) {
        Chart1->Canvas->TextOutW(X+15, Y, Series1->ValueMarkText[index]);
    } else {
        Series1->Repaint();
    }
}
//---------------------------------------------------------------------------

値が表示された。
(Note: (x, Y)そのままの位置ではマウスカーソルに文字が隠れるため、X+15とした)。

XE4

動作環境
C++ Builder XE4
int index = Series1->Clicked(X, Y);

上記にて下記のエラーが出る(ソフトは落ちない)。

TeeChartのバージョンはXE4付属品とは異なるため、付属品の場合は動作がうまくいくかもしれない。

XE4のファイルを10.2 Tokyoでビルド

(追記 2018/10/18)

XE4のプロジェクトを10.2 Tokyoに持ち込み、ビルドするとどうなるか。

同じようなエラーとなる。

原因

(追記 2018/10/18)

原因について下記に記載した。