我的要求是我想顯示一個圖像框,當用戶在圖表上的一個欄上執行鼠標懸停。目前在鼠標懸停時,我們正在顯示文本,如標籤,百分比等,我們也可以顯示圖像。TeeChart在鼠標在系列顯示用戶定義圖像
感謝 阿克沙伊
我的要求是我想顯示一個圖像框,當用戶在圖表上的一個欄上執行鼠標懸停。目前在鼠標懸停時,我們正在顯示文本,如標籤,百分比等,我們也可以顯示圖像。TeeChart在鼠標在系列顯示用戶定義圖像
感謝 阿克沙伊
您可以使用一個隱藏的矩形工具,以顯示所需的圖像,並使用所提供的事件來改變其可見性,位置,或加載圖像。
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
嗨Yeray,其實新TChart控制在馬克提示工具圖像圖片的選項,我們可以用這個相同的,如果這樣請儘可能幫我在這。 – 2014-09-01 06:18:53
我剛剛編輯答案 – Yeray 2014-10-07 14:50:36
嗨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