TChartでXYポイントでTChartSeriesを取得
質問
私はのデルファイ7に付属しているの TChartコントロールを使用してしたいんだのマウスポインタの下にライン/バーのシリーズとValue#を取得します。の
シリーズの上私は偉大な情報を提供してOnClickSeriesイベントを認識してんだけど、私はのホバーをするときの私は本当にこの情報を欲しいます。
編集:私はこれを掲示し、それ私の受け入れ答え作ったので、1つの図のいずれかのシリーズの種類と複数のシリーズで動作しますTChartのHitTestメソッドを発見しました。彼の努力のためのGameCatに感謝します。
解決 2
私は最終的にチャートの(でも、異なるタイプの)複数の系列で動作し、この方法を見つけます。
TChart.CalcClickedPart(Pos: TPoint; Var Part: TChartClickedPart);
この方法は、以下の詳細なヒットテストの情報が含まれているTChartClickedPartレコードを埋めます:
TChartClickedPart = record
Part : TChartClickedPartStyle;
PointIndex : Integer;
ASeries : TChartSeries;
AAxis : TChartAxis;
end;
これは私が望んでいたまさにですシリーズとValueIndex(PointIndex)が含まれます。
他のヒント
あなたはOnChartMouseMove(またはOnSeriesMouseMove)を確認することができます。
procedure TForm5.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
i : Integer;
begin
i := Series1.CalcClickedPie(x,y); // i = index of checked data -1 for none
Memo1.Lines.Add(IntToStr(i));
end;
[OK]を、バーの私の悪い、コードは(も簡単)異なっています
procedure TForm5.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
i : Integer;
begin
i := Series1.GetCursorValueIndex;
Memo1.Lines.Add(IntToStr(i));
end;
所属していません StackOverflow