Holen TChartSeries bei XY-Punkt in TChart
Frage
Ich bin mit der TChart Steuerung, die mit Delphi 7 kommt und mag erhält die Serie und Wert # der Linie / bar unter dem Mauszeiger.
Ich bin mir bewusst, der OnClickSeries Ereignis, das große info bietet aber Ich möchte wirklich diese Informationen, wenn I Hover über eine Reihe .
EDIT: Ich fand eine hittest Methode auf TChart, die mit irgendwelchen Reihentypen und mehrere Serien in der ein Diagramm funktioniert so dass ich dies geschrieben habe, und habe meine Antwort akzeptiert es. Besonderer Dank geht an Gamecat für seine Bemühungen.
Lösung 2
Schließlich fand ich diese Methode, die mit mehreren Serien (auch unterschiedlicher Typen) in einem Diagramm funktioniert.
TChart.CalcClickedPart(Pos: TPoint; Var Part: TChartClickedPart);
Die Methode füllt eine TChartClickedPart Aufzeichnung, die die folgenden detaillierten Treffertestinformationen enthält:
TChartClickedPart = record
Part : TChartClickedPartStyle;
PointIndex : Integer;
ASeries : TChartSeries;
AAxis : TChartAxis;
end;
Dazu gehört auch die Serie und die ValueIndex (PointIndex), das ist genau das, was ich wollte.
Andere Tipps
Sie können die OnChartMouseMove überprüfen (oder die 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, mein schlechter, der Code für Bars unterscheidet mich (noch einfacher):
procedure TForm5.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
i : Integer;
begin
i := Series1.GetCursorValueIndex;
Memo1.Lines.Add(IntToStr(i));
end;