Issues with FastLine

TeeChart for Microsoft Visual Studio .NET, Xamarin Studio (Android, iOS & Forms) & Monodevelop.
Nitin
Newbie
Newbie
Posts: 8
Joined: Thu May 17, 2012 12:00 am

Re: Issues with FastLine

Post by Nitin » Thu May 31, 2012 7:00 am

Hi Sandra,

Thanks for your reply. The method you suggested is a work around and not the final solution of the problem. Our application continuously plots realtime data and volume of data is very high (millions of rows). TChart already slows down with this volume and calling Refresh every few seconds makes it worse. I would appreciate if this bug gets fixed very soon.

Sandra
Site Admin
Site Admin
Posts: 3132
Joined: Fri Nov 07, 2008 12:00 am

Re: Issues with FastLine

Post by Sandra » Thu May 31, 2012 2:25 pm

Hello DaveR and Nitin,

Thanks for your information. We have added this problem in bug list report with number[TF02016204]. We will try to fix it for next maintenance releases of TeeChartFor.Net.

Thanks,
Best Regards,
Sandra Pazos / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

Narcís
Site Admin
Site Admin
Posts: 14730
Joined: Mon Jun 09, 2003 4:00 am
Location: Banyoles, Catalonia
Contact:

Re: Issues with FastLine

Post by Narcís » Tue Sep 18, 2012 2:18 pm

Hello Nitin,

About TF02016192, we have been investigating this problem further and we found the code is working as designed. The issue is that tChart1_MouseMove() is always called after fastLine1_MouseEnter(). This means that the x and y values are always one or two pixels behind what the actual values are. This fact, combined with the fact that internally fastLine1_MouseEnter() is called only when Series.Clicked != -1 means that these x and y values are permanently beyond the tolerance value for a valid click (tolerance = how many pixels away from a point counts as a click). The thing is is that this code:

Code: Select all

		void tChart1_MouseMove(object sender, MouseEventArgs e)
		{
			x = e.X;
			y = e.Y;

			int index = fastLine1.Clicked(x, y);

			if (index != -1)
			{
				tChart1.Header.Text = index.ToString();
			}
		}
works perfectly. What is more, internally this is exactly how we decide whether to call fastLine1_MouseEnter() (in the mousemove event, if Series.Clicked != -1). So we recommend you to use this technique:

Code: Select all

  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
      InitializeChart();
    }

    private Steema.TeeChart.Styles.FastLine fastLine1;

    private void InitializeChart()
    {
      tChart1.Aspect.View3D = false;
      tChart1.MouseMove += new MouseEventHandler(tChart1_MouseMove);

      fastLine1 = new Steema.TeeChart.Styles.FastLine(tChart1.Chart);
      fastLine1.FillSampleValues();
    }

    void tChart1_MouseMove(object sender, MouseEventArgs e)
    {
      int index = fastLine1.Clicked(e.X, e.Y);

      if (index != -1)
      {
        tChart1.Header.Text = index.ToString();
      }
    }    
  }
Best Regards,
Narcís Calvet / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

Post Reply