Question

J'utilise le contrôle TChart fourni avec Delphi 7 et souhaite obtenir les numéros de série et de valeur de la ligne / barre sous le pointeur de la souris.

Je suis au courant de l'événement OnClickSeries, qui fournit d'excellentes informations, mais je souhaite réellement obtenir ces informations lorsque je survole une série .

EDIT: J'ai trouvé la méthode la plus efficace sur TChart, qui fonctionne avec tous les types de séries et plusieurs séries dans le même graphique. J'ai donc posté ceci et en ai fait ma réponse acceptée. Un merci spécial à GameCat pour ses efforts.

Était-ce utile?

La solution 2

J'ai finalement trouvé cette méthode qui fonctionne avec plusieurs séries (même de types différents) dans un graphique.

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

La méthode remplit un enregistrement TChartClickedPart qui contient les informations détaillées suivantes sur le test de réussite:

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

Cela inclut la série et le ValueIndex (PointIndex), qui correspond exactement à ce que je voulais.

Autres conseils

Vous pouvez vérifier OnChartMouseMove (ou 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;

Okay, le code des barres est différent (encore plus facile):

procedure TForm5.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  i : Integer;
begin
  i := Series1.GetCursorValueIndex;
  Memo1.Lines.Add(IntToStr(i));
end;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top