Pregunta

Estoy usando el control TChart que viene con Delphi 7 y deseo obtener el número de serie y valor de la línea / barra debajo del puntero del mouse.

Soy consciente del evento OnClickSeries que proporciona una gran información, pero realmente quiero esta información cuando desplazo el cursor sobre una serie .

EDITAR: Encontré un método de prueba exitosa en TChart que funciona con cualquier tipo de serie y serie múltiple en un gráfico, así que publiqué esto y lo convertí en mi respuesta aceptada. Un agradecimiento especial a GameCat por su esfuerzo.

¿Fue útil?

Solución 2

Finalmente encontré este método que funciona con múltiples series (incluso de diferentes tipos) en un gráfico.

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

El método llena un registro TChartClickedPart que contiene la siguiente información detallada de prueba de impacto:

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

Esto incluye la Serie y el ValueIndex (PointIndex), que es exactamente lo que quería.

Otros consejos

Puede verificar OnChartMouseMove (o 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, está mal, el código para las barras es diferente (aún más fácil):

procedure TForm5.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  i : Integer;
begin
  i := Series1.GetCursorValueIndex;
  Memo1.Lines.Add(IntToStr(i));
end;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top