2014-08-28 21 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對象來繪製tiptool而不是使用VCL系統機制。

ChartTool3.SystemHints := False; 
ChartTool3.Format.Font.Size:=14; 

相比系統提示的唯一disadvantadge是形狀不能被顯示在圖表邊界之外 。

當SystemHints爲False時,新的Format屬性(類型TTeeShape) 包含所有格式化屬性(Brush,Pen,Font等)到 顯示提示。

由於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控制在馬克提示工具圖像圖片的選項,我們可以用這個相同的,如果這樣請儘可能幫我在這。 – 2014-09-01 06:18:53

+0

我剛剛編輯答案 – Yeray 2014-10-07 14:50:36

+0

嗨Yeray,我已經實施使用矩形工具。只是想知道如何添加標註。下面是我添加的代碼,但沒有繪製箭頭。 (0,0).m_ctrlChart.GetTools()。GetItems(0).GetAsRectangle()。GetCallout()。SetVisible(TRUE); ()。GetItems(0).GetAsRectangle()。GetCallout()。GetBrush()。SetColor(RGB(255,0,0)); ()。GetItems(0).GetAsRectangle()。GetCallout()。GetPen()。SetColor(RGB(0,0,255)); GetColor()。 。。m_ctrlChart.GetTools()GetItems(0).GetAsRectangle()GetCallout()GetArrow()的setColor(RGB(0,255,0)); – 2014-10-10 11:48:52

相關問題