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)
原因について下記に記載した。