Вопрос

я использую Элемент управления TChart, входящий в состав Delphi 7. и желаю получите серию и значение № линии/столбца под указателем мыши.

Мне известно о событии OnClickSeries, которое предоставляет полезную информацию, но Мне очень нужна эта информация, когда я зависать над серией.

РЕДАКТИРОВАТЬ:Я нашел на TChart самый популярный метод, который работает с любыми типами рядов и несколькими рядами на одной диаграмме, поэтому я опубликовал его и сделал его своим принятым ответом.Особая благодарность GameCat за его усилия.

Это было полезно?

Решение 2

Наконец я нашел этот метод, который работает с несколькими рядами (даже разных типов) на диаграмме.

TChart.CalcClickedPart(Pos: TPoint; Var Part: TChartClickedPart);

Метод заполняет запись TChartClickedPart, которая содержит следующую подробную информацию о проверке попадания:

TChartClickedPart = record
  Part : TChartClickedPartStyle;
  PointIndex : Integer;
  ASeries : TChartSeries;
  AAxis : TChartAxis;
end;

Сюда входят Series и 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