获得TChartSeries在XY点在TChart
题
我在使用 TChart控制,配备有德尔斐7 和希望 得到的一系列和价值的线条下鼠标的指针。
我知道OnClickSeries事件,这提供了很大的信息,但是 我真的很想要这个信息的时候我 悬停 在一系列.
编辑:我发现了一个hittest方法上TChart其适用的任何系列类型和多个系列中的一个图表,所以我已经发布这和我所接受的答案。特别感谢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;
好吧,我的错,代码吧是不同的(甚至更容易):
procedure TForm5.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
i : Integer;
begin
i := Series1.GetCursorValueIndex;
Memo1.Lines.Add(IntToStr(i));
end;
不隶属于 StackOverflow