2014-08-28 2 views

답변

0

당신이 원하는 이미지를 표시하고 가시성, 위치, 또는로드 된 이미지를 변경하기 위해 제공하는 이벤트를 사용하는 숨겨진 사각형 도구를 사용할 수 있습니다.

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 
+0

안녕 Yeray, 사실 새로운 TChart입니다 제어 가능하면 그래서이 저를 도와주세요 경우 할 수있는 우리는이 같은 사용 마크 팁 도구의 이미지 그림의 옵션이 있습니다. –

+0

방금 ​​대답을 편집했습니다 – Yeray

+0

안녕하세요 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(). –

관련 문제