내 요구 사항은 사용자가 차트의 막대 위에 마우스를 올려 놓으면 이미지 상자를 표시하려고합니다. 현재 마우스 오버시 레이블, 백분율 등과 같은 텍스트를 표시하고 있으며 이미지도 표시 할 수 있습니다.TeeChart On Mouse 시리즈 화면 위로 사용자 정의 이미지
감사 하기 Akshay
내 요구 사항은 사용자가 차트의 막대 위에 마우스를 올려 놓으면 이미지 상자를 표시하려고합니다. 현재 마우스 오버시 레이블, 백분율 등과 같은 텍스트를 표시하고 있으며 이미지도 표시 할 수 있습니다.TeeChart On Mouse 시리즈 화면 위로 사용자 정의 이미지
감사 하기 Akshay
당신이 원하는 이미지를 표시하고 가시성, 위치, 또는로드 된 이미지를 변경하기 위해 제공하는 이벤트를 사용하는 숨겨진 사각형 도구를 사용할 수 있습니다.
Private Sub Form_Load()
TChart1.Aspect.View3D = False
TChart1.AddSeries scBar
TChart1.Series(0).FillSampleValues
TChart1.Tools.Add tcMarksTip
TChart1.Tools.Add tcRectangle
TChart1.Tools.Items(1).Active = False
TChart1.Tools.Items(1).asRectangle.AllowDrag = False
TChart1.Tools.Items(1).asRectangle.AllowResize = False
TChart1.Tools.Items(1).asRectangle.Shape.Transparency = 0
End Sub
Private Sub TChart1_OnMouseEnterSeries(ByVal SeriesIndex As Long)
ValueIndex = TChart1.Series(SeriesIndex).Clicked(TChart1.MousePosition.X, TChart1.MousePosition.Y)
If ValueIndex = 2 Then
TChart1.Tools.Items(1).Active = True
TChart1.Tools.Items(1).asRectangle.Shape.Picture.LoadImage "C:\tmp\ImageForValueIndex2.png"
TChart1.Tools.Items(1).asRectangle.Left = TChart1.MousePosition.X
TChart1.Tools.Items(1).asRectangle.Top = TChart1.MousePosition.Y
End If
End Sub
Private Sub TChart1_OnMouseLeaveSeries(ByVal SeriesIndex As Long)
TChart1.Tools.Items(1).Active = False
End Sub
편집 : 다음 comment below에서 발견으로
, TeeChart는 VCL의 v2014.11이 SystemHints
를 도입 OnMouseEnterSeries
/OnMouseLeaveSeries
,하지만 같은 사용
즉, OnMouseMove
이벤트와 함께 할 수 설명 된대로 재산 here :
MarksTip 도구 새 속성 SystemHints (VCL에서는 부울 기본값 True, Firemonkey에서는 False). False 일 경우 일반 TeeShape 객체를 사용하여 VCL 시스템 메커니즘 대신 tiptool을 페인트합니다.
ChartTool3.SystemHints := False; ChartTool3.Format.Font.Size:=14;
힌트 시스템에 비해 단지 disadvantadge는 형상 차트 경계 밖에 표시되지 않을 수있다.
SystemHints가 False이면 새로운 형식 속성 (TTeeShape 형식) 에는 에 대한 모든 서식 속성 (브러쉬, 펜, 글꼴 등)이 포함되어 있으므로 힌트가 표시됩니다.
TeeChart ActiveX는 TeeChart VCL의 래퍼이므로 TeeChart ActiveX v2014.0.0.1의이 새로운 기능을 사용할 수 있습니다.
TeeShape 속성을 사용하려면 SystemHints
을 False로 설정해야합니다. 다음은 간단한 예입니다 :
Private Sub Form_Load()
TChart1.Aspect.View3D = False
TChart1.AddSeries scBar
TChart1.Series(0).FillSampleValues
TChart1.Tools.Add tcMarksTip
TChart1.Tools.Items(0).asMarksTip.Format.Picture.LoadImage "C:\tmp\ImageForAllValues.jpg"
TChart1.Tools.Items(0).asMarksTip.SystemHints = False
End Sub
안녕 Yeray, 사실 새로운 TChart입니다 제어 가능하면 그래서이 저를 도와주세요 경우 할 수있는 우리는이 같은 사용 마크 팁 도구의 이미지 그림의 옵션이 있습니다. –
방금 대답을 편집했습니다 – Yeray
안녕하세요 Yeray, 저는 Rectangle Tool을 사용하여 구현했습니다. 콜 아웃을 어떻게 추가 할 수 있는지 알고 싶습니다. 아래에 코드를 추가했지만 Arrow는 그려지지 않았습니다. (0,0) .m_ctrlChart.GetTools(). GetItems (0) .GetAsRectangle(). GetCallout(). SetVisible (TRUE); \t \t m_ctrlChart.GetTools(). GetItems (0) .GetAsRectangle(). GetCallout(). GetBrush(). SetColor (RGB (255,0,0)); \t \t GetItems (0) .GetAsRectangle(). GetCallout(). GetPen(). SetColor (RGB (0,0,255)); GetColorout(). GetArrow(). SetColor (RGB (0,255,0)); m_ctrlChart.GetTools(). –