我在使用 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;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top