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.

War es hilfreich?

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;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top