我的要求是,当用户在图表中的条形图上执行鼠标操作时,我想显示一个图像框。目前在鼠标中我们正在显示标签,百分比等文本,我们也可以显示图像。
由于 阿克沙伊
答案 0 :(得分:0)
您可以使用隐藏的矩形工具显示所需的图像,并使用提供的事件更改其可见性,位置或加载的图像。
即,使用OnMouseEnterSeries
/ OnMouseLeaveSeries
,但OnMouseMove
事件也可以这样做:
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
属性,如here所述:
MarksTip工具新属性SystemHints(在VCL中布尔默认为True, Firemonkey中的错误)。当为False时,使用普通的TeeShape对象 绘制tiptool而不是使用VCL系统机制。
ChartTool3.SystemHints := False; ChartTool3.Format.Font.Size:=14;
与系统提示相比,唯一的不利因素是形状不可能 显示在图表边界之外。
当SystemHints为False时,新的Format属性(类型为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