Steema Issues Database

Note: This database is for bugs and wishes only. For technical support help, if you are a customer please visit our online forums;
otherwise you can use StackOverflow.
Before using this bug-tracker we recommend a look at this document, Steema Bug Fixing Policy.



Bug 2166

Summary: Stop repainting the chart when moving the mouse over a series
Product: ActiveX TeeChart Reporter: yeray alonso <yeray>
Component: ChartAssignee: Steema Issue Manager <issuemanager>
Status: CONFIRMED ---    
Severity: enhancement    
Priority: ---    
Version: TeeChart Pro Activex Control 2018.0.2.9 Release   
Target Milestone: ---   
Hardware: PC   
OS: Windows   
Chart Series: --- Delphi / C++ Builder RAD IDE Version:

Description yeray alonso 2019-03-08 03:56:16 EST
Even disabling the Hover feature, moving the mouse over a series still repaints the chart, firing all the drawing events (BeforeDraw*, AfterDraw,...)

For the Line series, you can workaround it setting ClickableLine=False, but not for the other series.

In particular, the customer reporting this is interested in the HighLowLine series.

You can set Chart1.Enabled=false, but you completely loose the Zoom and Scroll features.

Note in VCL disabling the Hover is enough for all the series tested (Point, Line and HighLowLine), keeping the Zoom&Scroll working without problems.

Test code:

Dim nRepaints As Integer

Private Sub Form_Load()
  TChart1.Aspect.View3D = False
  TChart1.Legend.Visible = False
  TChart1.Hover.Visible = False

  ' Workaround for all (but loosing zoom an scroll)
  'TChart1.Enabled = False

  ' ClickableLine=False workarounds it for the Line Series
  'TChart1.AddSeries scLine
  'TChart1.Series(0).FillSampleValues 20
  'TChart1.Series(0).asLine.ClickableLine = False ' Workaround

  ' ClickableLine=False does not workaround for the Point Series
  'TChart1.AddSeries scPoint
  'TChart1.Series(0).FillSampleValues 20
  'TChart1.Series(0).asPoint.ClickableLine = False ' Not working

  TChart1.AddSeries scHighLowLine
  TChart1.Series(0).FillSampleValues 20
 
  nRepaints = 0
End Sub

Private Sub TChart1_OnAfterDraw()
  nRepaints = nRepaints + 1
  TChart1.Canvas.TextOut 10, 10, "Chart drawn " + Str$(nRepaints) + " times"
End Sub