문제

나는 사용하고있다 Delphi 7과 함께 제공되는 TCHART CONTROL 그리고 원합니다 마우스 포인터 아래에서 라인/바의 시리즈와 값 #을 가져옵니다.

훌륭한 정보를 제공하는 OnclickSeries 이벤트를 알고 있습니다. 나는이 정보를 정말로 원할 때 호버 시리즈를 통해.

편집 : TCHART에서 하나의 차트에서 모든 시리즈 유형 및 여러 시리즈로 작동하는 HitTest 메소드를 찾았 으므로이 게시물을 게시하고 수락 된 답변을 만들었습니다. 그의 노력에 대한 Gamecat에게 특별한 감사를드립니다.

도움이 되었습니까?

해결책 2

마침내 차트에서 여러 시리즈 (다른 유형의)에서 작동하는이 방법을 찾았습니다.

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

이 메소드는 다음과 같은 자세한 히트 테스트 정보를 포함하는 tchartclickedpart 레코드를 채 웁니다.

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

여기에는 시리즈와 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