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

Issues with FastLine

Post by Nitin » Fri May 18, 2012 7:26 am

Hi,

We've just upgraded to latest version of TeeChart for .NET 2012 4.1.2012.05100. We're having issues with FastLine where the application crashes with following unhandled exception

Steema.TeeChart.Styles.ValueList.InsertChartValue(Int32 valueIndex, Double value)
at Steema.TeeChart.Styles.FastLine.DoDrawPoint(Int32 index, Int32 X, Int32 Y)
at Steema.TeeChart.Styles.FastLine.DrawValue(Int32 index)
at Steema.TeeChart.Styles.FastLine.PrepareFastLine()
at Steema.TeeChart.Styles.FastLine.Draw()
at Steema.TeeChart.Styles.FastLine.Clicked(Int32 x, Int32 y)
at Steema.TeeChart.Styles.Series.CheckMouse(Cursor& c, Int32 x, Int32 y)
at Steema.TeeChart.Chart.CheckMouseSeries(Cursor& c, Int32 X, Int32 Y)
at Steema.TeeChart.Chart.DoMouseMove(Int32 x, Int32 y, Cursor& c)
at Steema.TeeChart.TChart.OnMouseMove(MouseEventArgs e)
at System.Windows.Forms.Control.WmMouseMove(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

The release notes says that FastLine.Clicked() bug has been fixed but I think it is still there. We use Click, MouseEnter and MouseLeave events for the FastLine.

Please respond as early as possible as now the application simply don't work with this latest release.

We can not change the line type to normal Line as we plot large data points and FastLine is only option to make it faster.

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 » Fri May 18, 2012 8:05 am

Hi Nitin,

Could you please attach a simple example project we can run "as-is" and let us know the exact steps we should follow to reproduce the problem here?

Thanks in advance.
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

Nitin
Newbie
Newbie
Posts: 8
Joined: Thu May 17, 2012 12:00 am

Re: Issues with FastLine

Post by Nitin » Fri May 18, 2012 9:29 am

Hi Narcis,

I cannot send a sample example as the application is very complex. I've noticed that the exception fires when mouse hovers over a series. In MouseEnter event of FastLine, we capture X and Y and call Clicked(X,Y) method to find the index. At this time, it throws unhandled exception. In earlier version, this was happening randomly but in this latest release, it simply doesn't work and throws exception everytime.

Let me know how fast can you fix this issue, otherwise we have to go back to previous version. Even previous version has similar bugs in FastLine and crashes the application quite often.

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 » Fri May 18, 2012 3:03 pm

Hi Nitin,

Are you checking that Clicked doesn't return -1? Using the code snippet below Clicked is not working fine, always returns -1 but I don't get any exception. I have added this issue (TF02016192) to the bug list to be investigated. Is that what you get?

Code: Select all

    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();
      fastLine1.MouseEnter += new EventHandler(fastLine1_MouseEnter);
    }

    private int x, y;

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

    void fastLine1_MouseEnter(object sender, EventArgs e)
    {
      int index = fastLine1.Clicked(x, y);

      if (index != -1)
      {
        tChart1.Header.Text = index.ToString();
      }
    }
Thanks in advance.
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

Nitin
Newbie
Newbie
Posts: 8
Joined: Thu May 17, 2012 12:00 am

Re: Issues with FastLine

Post by Nitin » Sun May 20, 2012 5:25 am

Hi Narcis,

Yes I do check if it returns -1. Even earlier it was not working fine but the amount of unhandled exception is now higher in this release and it makes the application completely unstable. Please let me know how fast you can provide the fix as this is very urgent and even previous versions have similar problems where the FastLine.Clicked method randomly crashes the application.

Nitin
Newbie
Newbie
Posts: 8
Joined: Thu May 17, 2012 12:00 am

Re: Issues with FastLine

Post by Nitin » Mon May 21, 2012 10:26 am

Hi Narcis,

Any update? As I said it's very urgent for us and I would appreciate if you can tell me whether you can provide us the hotfix for this issue.

Nitin

Loz
Newbie
Newbie
Posts: 9
Joined: Tue May 08, 2012 12:00 am

Re: Issues with FastLine

Post by Loz » Mon May 21, 2012 11:40 am

This is all along the same lines as the problems I've been reporting recently.

Whilst the crashes stopped for us with the latest update (dated May 15 I think), we've found it's no longer able to accurately determine what series we're clicking on. I suspect it's all related. When we create simple test apps they work fine but not in our main application.

As soon as I get a chance I plan to have a closer look and see if I can create a test app to demonstrate the issue. We've had to temporarily disable some of the functionality. Meanwhile if there is a hotfix, I'd be interested too.

Loz
Newbie
Newbie
Posts: 9
Joined: Tue May 08, 2012 12:00 am

Re: Issues with FastLine

Post by Loz » Mon May 21, 2012 2:49 pm

Not sure if it helps as a temporary fix but I've overcome it by using some older code... Replace the Clicked function with this version...

#if WPF
public override int Clicked(double x, double y)
#else
public override int Clicked(int x, int y)
#endif
{
if ((firstVisible > -1) && (lastVisible > -1))
{
if (chart != null) chart.graphics3D.Calculate2DPosition(ref x, ref y, MiddleZ);

#if WPF
double OldX = 0;
double OldY = 0;
double tmpX, tmpY;
#else
int OldX = 0;
int OldY = 0;
int tmpX, tmpY;
#endif
Point p = new Point(x, y);

for (int t = firstVisible; t <= lastVisible; t++)
{
tmpX = CalcXPos(t);
tmpY = CalcYPos(t);
if ((tmpX == x) && (tmpY == y))
return t;
else if ((t > firstVisible) && Graphics3D.PointInLineTolerance(p, tmpX, tmpY, OldX, OldY, 3))
return t - 1;
OldX = tmpX;
OldY = tmpY;
}
}
return -1;
}

Nitin
Newbie
Newbie
Posts: 8
Joined: Thu May 17, 2012 12:00 am

Re: Issues with FastLine

Post by Nitin » Wed May 23, 2012 3:05 am

Hi,

Would you please answer ?

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

Re: Issues with FastLine

Post by Sandra » Wed May 23, 2012 11:57 am

Hello Nitin,

I can not provide a estimate date of when next maintenance release will be published, because last release is of 10 of May. I recommend you to be aware at this forum, our RSS news feed, twitter and facebook accounts for new release announcements and what's implemented on them.

On the other hand, I suggest you use other mouse events as example MouseMove, MouseClick, MouseLeave of series . I have modified the Narcis code using MouseMove event:

Code: Select all

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.LinePen.Width = 2;
            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();
            }
        }
Can you tell us if previous code works in your end?

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

Nitin
Newbie
Newbie
Posts: 8
Joined: Thu May 17, 2012 12:00 am

Re: Issues with FastLine

Post by Nitin » Wed May 23, 2012 3:30 pm

Hi Sandra,

Thanks for your reply. I already did this but it doesn't stop unhandled exceptions and application crashes. Main problem is bugs in the FastLine series. We are facing these issues since last few releases but the FastLine series in this release is very unstable and it simply doesn't work. Every new release comes with more new bugs than fixes. The FastLine was working fine before.

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

Re: Issues with FastLine

Post by Sandra » Thu May 24, 2012 10:01 am

Hello Nitin,
Thanks for your reply. I already did this but it doesn't stop unhandled exceptions and application crashes. Main problem is bugs in the FastLine series. We are facing these issues since last few releases but the FastLine series in this release is very unstable and it simply doesn't work. Every new release comes with more new bugs than fixes. The FastLine was working fine before.
Using the codes we have suggested you, we don't have any problem with FastLine Series and it works in our end. For this, we need to reproduce the problems to fix these. For this reason, would be very helpful for us if you can try to arrange a simple project for us, because we can reproduce the exceptions appear when you use a Fastline and Mouse Events.

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

Nitin
Newbie
Newbie
Posts: 8
Joined: Thu May 17, 2012 12:00 am

Re: Issues with FastLine

Post by Nitin » Tue May 29, 2012 1:14 pm

Hi Sandra,

I have attached sample project which re-produces the issue with FastLine. Run the project and click on 'Load Data' button. Zoom in and out few times and move your mouse in the chart to get the unhandled exception.
Attachments
TeeChart2012Test.zip
(19.48 KiB) Downloaded 666 times

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

Re: Issues with FastLine

Post by Sandra » Wed May 30, 2012 2:07 pm

Hello Nitin,

Thanks for your project, finally we can reproduce your exception. Your problem occurs because the clicked metohd is activate,sometimes, before the series have been finished to draw in the canvas. For solve the problem, you only need use AutoRepaint=true in your methods populate and refresh series, as I have done in your project.
TeeChart2012Test1.zip
(31.78 KiB) Downloaded 688 times
Can you tell us if your project works without problems?

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

DaveR
Newbie
Newbie
Posts: 23
Joined: Tue Feb 07, 2012 12:00 am

Re: Issues with FastLine

Post by DaveR » Wed May 30, 2012 2:28 pm

I get the exact same thing, but under slightly different circumstances. Also, this is something that has changed in the recent past. My code used to work, but now fails dramtically.

Replicating this on my end can be done 100% of the time. If I have a chart on the screen and add a Bollinger Band study to it the chart will draw just fine. The problem occurs if I activate a Selection Tool on the chart. Once that is active, as soon as the mouse enters the chart client rectangle, the whole program blows up.

Like the other user, this is inside a fairly complex program that is loading live financial data, etc., so creating a sample sandbox where this happens is difficult. At the very least, some error trapping to catch NULL values or whatever inside the code could head this off. You can easily see the TCHART sub routines which are failing in the following Call Stack Report. A quick fix would sure be nice.


SYSTEM.INDEXOUTOFRANGEEXCEPTION: INDEX WAS OUTSIDE THE BOUNDS OF THE ARRAY.
AT STEEMA.TEECHART.STYLES.VALUELIST.INSERTCHARTVALUE(INT32 VALUEINDEX, DOUBLE VALUE)
AT STEEMA.TEECHART.STYLES.FASTLINE.DODRAWPOINT(INT32 INDEX, INT32 X, INT32 Y)
AT STEEMA.TEECHART.STYLES.FASTLINE.DRAWVALUE(INT32 INDEX)
AT STEEMA.TEECHART.STYLES.FASTLINE.PREPAREFASTLINE()
AT STEEMA.TEECHART.STYLES.FASTLINE.DRAW()
AT STEEMA.TEECHART.STYLES.FASTLINE.CLICKED(INT32 X, INT32 Y)
AT STEEMA.TEECHART.STYLES.SERIES.CLICKED(POINT P)
AT STEEMA.TEECHART.CHART.CALCNEEDCLICKEDPART(POINT POS, BOOLEAN NEEDED)
AT STEEMA.TEECHART.CHART.CALCCLICKEDPART(POINT POS, CHARTCLICKEDPART& PART)
AT STEEMA.TEECHART.TOOLS.SELECTOR.GUESSCURSOR(MOUSEEVENTARGS E, CURSOR& C)
AT STEEMA.TEECHART.TOOLS.SELECTOR.MOUSEEVENT(MOUSEEVENTKINDS KIND, MOUSEEVENTARGS E, CURSOR& C)
AT STEEMA.TEECHART.CHART.BROADCASTMOUSEEVENT(MOUSEEVENTKINDS KIND, MOUSEEVENTARGS E, CURSOR& C)
AT STEEMA.TEECHART.CHART.BROADCASTMOUSEEVENT(MOUSEEVENTKINDS KIND, MOUSEEVENTARGS E, KEYS MODKEYS, CURSOR& C)
AT STEEMA.TEECHART.TCHART.ONMOUSEMOVE(MOUSEEVENTARGS E)
AT SYSTEM.WINDOWS.FORMS.CONTROL.WMMOUSEMOVE(MESSAGE& M)
AT SYSTEM.WINDOWS.FORMS.CONTROL.WNDPROC(MESSAGE& M)
AT SYSTEM.WINDOWS.FORMS.CONTROL.CONTROLNATIVEWINDOW.ONMESSAGE(MESSAGE& M)
AT SYSTEM.WINDOWS.FORMS.CONTROL.CONTROLNATIVEWINDOW.WNDPROC(MESSAGE& M)
AT SYSTEM.WINDOWS.FORMS.NATIVEWINDOW.DEBUGGABLECALLBACK(INTPTR HWND, INT32 MSG, INTPTR WPARAM, INTPTR LPARAM)
AT SYSTEM.WINDOWS.FORMS.UNSAFENATIVEMETHODS.DISPATCHMESSAGEW(MSG& MSG)
AT SYSTEM.WINDOWS.FORMS.APPLICATION.COMPONENTMANAGER.SYSTEM.WINDOWS.FORMS.UNSAFENATIVEMETHODS.IMSOCOMPONENTMANAGER.FPUSHMESSAGELOOP(INTPTR DWCOMPONENTID, INT32 REASON, INT32 PVLOOPDATA)
AT SYSTEM.WINDOWS.FORMS.APPLICATION.THREADCONTEXT.RUNMESSAGELOOPINNER(INT32 REASON, APPLICATIONCONTEXT CONTEXT)
AT SYSTEM.WINDOWS.FORMS.APPLICATION.THREADCONTEXT.RUNMESSAGELOOP(INT32 REASON, APPLICATIONCONTEXT CONTEXT)
AT MICROSOFT.VISUALBASIC.APPLICATIONSERVICES.WINDOWSFORMSAPPLICATIONBASE.ONRUN()
AT MICROSOFT.VISUALBASIC.APPLICATIONSERVICES.WINDOWSFORMSAPPLICATIONBASE.DOAPPLICATIONMODEL()
AT MICROSOFT.VISUALBASIC.APPLICATIONSERVICES.WINDOWSFORMSAPPLICATIONBASE.RUN(STRING[] COMMANDLINE)
AT xxxx.MY.MYAPPLICATION.MAIN(STRING[] ARGS) IN 17D14F5C-A337-4978-8281-53493378C1071.VB:LINE 81
AT SYSTEM.APPDOMAIN._NEXECUTEASSEMBLY(RUNTIMEASSEMBLY ASSEMBLY, STRING[] ARGS)
AT SYSTEM.APPDOMAIN.EXECUTEASSEMBLY(STRING ASSEMBLYFILE, EVIDENCE ASSEMBLYSECURITY, STRING[] ARGS)
AT MICROSOFT.VISUALSTUDIO.HOSTINGPROCESS.HOSTPROC.RUNUSERSASSEMBLY()
AT SYSTEM.THREADING.THREADHELPER.THREADSTART_CONTEXT(OBJECT STATE)
AT SYSTEM.THREADING.EXECUTIONCONTEXT.RUN(EXECUTIONCONTEXT EXECUTIONCONTEXT, CONTEXTCALLBACK CALLBACK, OBJECT STATE, BOOLEAN IGNORESYNCCTX)
AT SYSTEM.THREADING.EXECUTIONCONTEXT.RUN(EXECUTIONCONTEXT EXECUTIONCONTEXT, CONTEXTCALLBACK CALLBACK, OBJECT STATE)
AT SYSTEM.THREADING.THREADHELPER.THREADSTART()

Post Reply