TCHART의 XY Point에서 TCHARTSERIES를 받으십시오
문제
나는 사용하고있다 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;
제휴하지 않습니다 StackOverflow