ArgumentException was unhandled during rotation
-
- Newbie
- Posts: 20
- Joined: Mon Feb 14, 2005 5:00 am
- Location: Eastern Washington, US
ArgumentException was unhandled during rotation
I am porting a Delphi application to C#/WPF. I initially display a line chart in 2D, then enable 3D and rotation. The chart correctly appears in 3D, and rotates a little bit, then I get an "ArgumentException was unhandled" error "Width must be non-negative" and my application crashes without a traceback.
This same functionality works fine in my delphi version using the same charting data. Here is how I enable rotation and 3D:
FChartTimeSeries.ChartRotate = true;
FChartTimeSeries.ChartTranslate = false;
FChartTimeSeries.ChartZoom = false;
FChartTimeSeries.ChartThickness = false;
FChartTimeSeries.ChartDisplay.Zoom.Allow = false;
FChartTimeSeries.ChartDisplay.Aspect.View3D = true;
Here is how I apply rotation in the mouse move event handler:
FChartTimeSeries.ChartDisplay.Aspect.Orthogonal = false;
FChartTimeSeries.ChartDIsplay.Aspect.Rotation = FChartTimeSeries.ChartDisplay.Aspect.Rotation + deltaX;
FChartTimeSeries.ChartDIsplay.Aspect.Elevation = FChartTimeSeries.ChartDisplay.Aspect.Rotation - deltaX;
If I rotate exclusively or change elevation exclusively, it does not seem to happen. But if I have a combination of rotation and elevation change it crashes.
Can you give me any idea why this is happening? I can send my application code if necessary.
Thanks,
Kent
This same functionality works fine in my delphi version using the same charting data. Here is how I enable rotation and 3D:
FChartTimeSeries.ChartRotate = true;
FChartTimeSeries.ChartTranslate = false;
FChartTimeSeries.ChartZoom = false;
FChartTimeSeries.ChartThickness = false;
FChartTimeSeries.ChartDisplay.Zoom.Allow = false;
FChartTimeSeries.ChartDisplay.Aspect.View3D = true;
Here is how I apply rotation in the mouse move event handler:
FChartTimeSeries.ChartDisplay.Aspect.Orthogonal = false;
FChartTimeSeries.ChartDIsplay.Aspect.Rotation = FChartTimeSeries.ChartDisplay.Aspect.Rotation + deltaX;
FChartTimeSeries.ChartDIsplay.Aspect.Elevation = FChartTimeSeries.ChartDisplay.Aspect.Rotation - deltaX;
If I rotate exclusively or change elevation exclusively, it does not seem to happen. But if I have a combination of rotation and elevation change it crashes.
Can you give me any idea why this is happening? I can send my application code if necessary.
Thanks,
Kent
Re: ArgumentException was unhandled during rotation
Hi BlueMonkey,
Both the error message and the piece of code that you've posted, make me think that you could be trying set a negative elevation or rotation. I'm not sure if this should cause a crash, but you could try applying mod functions to prevent that. Something similar to the following for the rotation:
And for the elevation there is another issue you should be careful with. Note that the scrollbar for the elevation in the editor is limited between 270 and 360 so if you want to show the aspect editor in your application, you should ensure that the elevation is into the correct range to avoid any error. Something like following:
Both the error message and the piece of code that you've posted, make me think that you could be trying set a negative elevation or rotation. I'm not sure if this should cause a crash, but you could try applying mod functions to prevent that. Something similar to the following for the rotation:
Code: Select all
FChartTimeSeries.ChartDIsplay.Aspect.Rotation = (FChartTimeSeries.ChartDisplay.Aspect.Rotation + deltaX) % 360;
Code: Select all
FChartTimeSeries.ChartDIsplay.Aspect.Elevation = ((FChartTimeSeries.ChartDisplay.Aspect.Rotation - deltaX) % 90) + 270;
Best Regards,
Yeray Alonso Development & Support Steema Software Av. Montilivi 33, 17003 Girona, Catalonia (SP) | |
Please read our Bug Fixing Policy |
-
- Newbie
- Posts: 20
- Joined: Mon Feb 14, 2005 5:00 am
- Location: Eastern Washington, US
Re: ArgumentException was unhandled during rotation
Hi Yeray,
I tried your suggestion, but it did not work. I examined the value of Rotation when I applied a delta of -1. The resulting value of rotation was 359 as intended, but I still got the crash with "height must be non-negative."
I do not have this code adjustment in my Delphi version, and I never get such a crash.
Any other ideas?
Thanks,
Kent
I tried your suggestion, but it did not work. I examined the value of Rotation when I applied a delta of -1. The resulting value of rotation was 359 as intended, but I still got the crash with "height must be non-negative."
I do not have this code adjustment in my Delphi version, and I never get such a crash.
Any other ideas?
Thanks,
Kent
Re: ArgumentException was unhandled during rotation
Hello BlueMonkey,
Please you could send a simple project us, because we can reproduce the problem here? You could attach the project directly in the Forums post.
Thanks,
Please you could send a simple project us, because we can reproduce the problem here? You could attach the project directly in the Forums post.
Thanks,
Best Regards,
Sandra Pazos / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |
-
- Newbie
- Posts: 20
- Joined: Mon Feb 14, 2005 5:00 am
- Location: Eastern Washington, US
Re: ArgumentException was unhandled during rotation
I have attached a project and an input file. I had to remove pdb files and .exe file in order to make the project small enough to upload.
Although it is not a trival project, it isn't that big either. Just build it and run it.
To reproduce the problem do the following:
1. click the Browse... button and read the attached .txt file (unzipped). A chart will appear.
2. Click the rotate icon in the toolbar at the bottom of the screen (second from left). The chart will automatically change to 3D and activate mouse rotation.
3. Place the mouse in the chart area and drag with the left button held down.
4. Crash....
A second problem is that I cannot get the chart properties dialog window to appear. To reproduce, click the Tools icon (second from the right). The event handler is buttonEdit_Click().
Thanks,
Kent
Although it is not a trival project, it isn't that big either. Just build it and run it.
To reproduce the problem do the following:
1. click the Browse... button and read the attached .txt file (unzipped). A chart will appear.
2. Click the rotate icon in the toolbar at the bottom of the screen (second from left). The chart will automatically change to 3D and activate mouse rotation.
3. Place the mouse in the chart area and drag with the left button held down.
4. Crash....
A second problem is that I cannot get the chart properties dialog window to appear. To reproduce, click the Tools icon (second from the right). The event handler is buttonEdit_Click().
Thanks,
Kent
- Attachments
-
- LDP_16Channels.zip
- Input file
- (1.4 KiB) Downloaded 574 times
-
- WpfChartViewer_8_6.zip
- Project files
- (418.77 KiB) Downloaded 580 times
Re: ArgumentException was unhandled during rotation
Hello BlueMonkey,
Please you could send again your .txt file, because I can not open this file in your application that you send.
Thanks,
Please you could send again your .txt file, because I can not open this file in your application that you send.
Thanks,
Best Regards,
Sandra Pazos / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |
-
- Newbie
- Posts: 20
- Joined: Mon Feb 14, 2005 5:00 am
- Location: Eastern Washington, US
Re: ArgumentException was unhandled during rotation
Here is a new input file. It is a .csv instead of .txt.
- Attachments
-
- LDP_16Channels.zip
- input file
- (1.4 KiB) Downloaded 509 times
Re: ArgumentException was unhandled during rotation
Hello BlueMonkey,
We couldn't reproduce your project, because not appears chart and appears message that said: "File does not contains valid data". Please you could send a more simple project us we could reproduce your issue here?.
Thanks,
We couldn't reproduce your project, because not appears chart and appears message that said: "File does not contains valid data". Please you could send a more simple project us we could reproduce your issue here?.
Thanks,
Best Regards,
Sandra Pazos / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |
-
- Newbie
- Posts: 20
- Joined: Mon Feb 14, 2005 5:00 am
- Location: Eastern Washington, US
Re: ArgumentException was unhandled during rotation
I have updated my project and uploaded the new project files and a sample data file. I removed the pdb files and the Teechart.WPF.dll in order to make the zip file small enough to upload. All you have to do is paste the latest Teechart.WPF.dll into the /bin/Debug folder of the project folder and rebuild the application (I am using 4.0.2009.21358). I have tested the zipped files and was able to build the project and reproduce the problems.
There are two ways to import data into the application: 1) click the "Browse..." button to import the supplied .CSV file or 2) open the CSV file in Notepad, select all, copy and paste into the text area of the NotePad tab at the top of the WPF application window, then click the Chart button. NOTE: all controls now have tooltips to explain their function. NOTE also, it is possible that you can get an "Invalid data" error if your regional settings are not set up for US-English. If this happens, please change your Regional and Language options in the Control Panel to English (United States). This is probably what caused the problems with the sample application that I sent previously.
Here are the problems that I am having and an explanation of how to reproduce each:
- Copy to clipboard does not work (crash)
1. Import the supplied data file as described above
2. click the copy icon in the bottom toolbar (rightmost icon)
- Showing the editor window (Teechart property editor window) does not work (nothing happens)
1. Click the tools "Edit chart properties" icon in the bottom toolbar ( icon second from right)
- The Teechart GetNextAxisLabel() method is never called.
1. Import the supplied data file. The method should be called automatically, but it is not.
- Crash during 3D rotation
1. Import the supplied data file
2. Click the "Enable Chart Rotation" icon in the bottom toolbar (second from left)
3. Drag the mouse over the chart with the left button pressed to attempt rotation.
- Cursor over chart to query data values does not work
1. Import the supplied data file
2. Click the "Enable chart data feedback at cursor location" icon in bottom toolbar (6th icon from right).
3. Hover the mouse pointer over the chart. The event handler for MouseMove (ChartHMICBEMA_MouseMove calls DisplayMouseQueryFeedback()) does not produce a "Match" condition. (See line 3601 of FormChartTimeSeries.cs)
Thanks alot for your help,
Kent
There are two ways to import data into the application: 1) click the "Browse..." button to import the supplied .CSV file or 2) open the CSV file in Notepad, select all, copy and paste into the text area of the NotePad tab at the top of the WPF application window, then click the Chart button. NOTE: all controls now have tooltips to explain their function. NOTE also, it is possible that you can get an "Invalid data" error if your regional settings are not set up for US-English. If this happens, please change your Regional and Language options in the Control Panel to English (United States). This is probably what caused the problems with the sample application that I sent previously.
Here are the problems that I am having and an explanation of how to reproduce each:
- Copy to clipboard does not work (crash)
1. Import the supplied data file as described above
2. click the copy icon in the bottom toolbar (rightmost icon)
- Showing the editor window (Teechart property editor window) does not work (nothing happens)
1. Click the tools "Edit chart properties" icon in the bottom toolbar ( icon second from right)
- The Teechart GetNextAxisLabel() method is never called.
1. Import the supplied data file. The method should be called automatically, but it is not.
- Crash during 3D rotation
1. Import the supplied data file
2. Click the "Enable Chart Rotation" icon in the bottom toolbar (second from left)
3. Drag the mouse over the chart with the left button pressed to attempt rotation.
- Cursor over chart to query data values does not work
1. Import the supplied data file
2. Click the "Enable chart data feedback at cursor location" icon in bottom toolbar (6th icon from right).
3. Hover the mouse pointer over the chart. The event handler for MouseMove (ChartHMICBEMA_MouseMove calls DisplayMouseQueryFeedback()) does not produce a "Match" condition. (See line 3601 of FormChartTimeSeries.cs)
Thanks alot for your help,
Kent
- Attachments
-
- LDP_16Channels.zip
- sample data file
- (1.4 KiB) Downloaded 537 times
-
- WpfChartViewerDemo.zip
- updated project files
- (456.18 KiB) Downloaded 573 times
Re: ArgumentException was unhandled during rotation
Hello Kent,
Thanks,
As I commented in this post. I have added back to list of Bug Report with number [TW16014356].- Copy to clipboard does not work (crash)
1. Import the supplied data file as described above
2. click the copy icon in the bottom toolbar (rightmost icon)
At the moment, can not possible using editor but there is a feature Request with number [TW16014180] to regards in features versions of TeeChartFor .Net.- Showing the editor window (Teechart property editor window) does not work (nothing happens)
1. Click the tools "Edit chart properties" icon in the bottom toolbar ( icon second from right)
There are a bug, when you use GetNextAxisLabel() simultaneous with GetAxisLabel() event there is a conflict and don't GetAxisNextLabel don't works. This already is in the list with number[TF02014336].we will try to fix it for next versions of TeeChart .NET.- The Teechart GetNextAxisLabel() method is never called.
1. Import the supplied data file. The method should be called automatically, but it is not.
Please, send a simple project with only reproduce this problem and we could reproduce here. You could attach your project directly in the post.- Crash during 3D rotation
1. Import the supplied data file
2. Click the "Enable Chart Rotation" icon in the bottom toolbar (second from left)
3. Drag the mouse over the chart with the left button pressed to attempt rotation.
I couldn't reproduce your problem here, using last version of TeeChartFor.Net. Please, you could make a simple project that reproduce this issue. You could attach your example directly in the post.Cursor over chart to query data values does not work
1. Import the supplied data file
2. Click the "Enable chart data feedback at cursor location" icon in bottom toolbar (6th icon from right).
3. Hover the mouse pointer over the chart. The event handler for MouseMove (ChartHMICBEMA_MouseMove calls DisplayMouseQueryFeedback()) does not produce a "Match" condition. (See line 3601 of FormChartTimeSeries.cs)
Thanks,
Best Regards,
Sandra Pazos / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |
-
- Newbie
- Posts: 20
- Joined: Mon Feb 14, 2005 5:00 am
- Location: Eastern Washington, US
Re: ArgumentException was unhandled during rotation
I don't understand why you need a simpler example. The one I sent to you reproduces the problems very easily. I may not be able to reproduce the problem with a trivial example.
Are you telling me that you tried to reproduce the problems with my example, and they worked as expected?
Thanks,
Kent
Are you telling me that you tried to reproduce the problems with my example, and they worked as expected?
Thanks,
Kent
Re: ArgumentException was unhandled during rotation
Hello BlueMonkey,
Thanks,
I have not expressed correctly, When I said that you send a simple project I want refered that if you could send a small project that only reproduce for example your rotation problem or Cursor over chart to query data values. Because, your project is very complex there we are dedicated much time to debug right to know where the problem that solved this. We would be very grateful if you could send us a project where reproduce only your problem of rotation and other project where only reproduce the problem of Cursor over chart to query data values there so we can try to solve your problem easier.Are you telling me that you tried to reproduce the problems with my example, and they worked as expected?
Thanks,
Best Regards,
Sandra Pazos / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |
-
- Newbie
- Posts: 20
- Joined: Mon Feb 14, 2005 5:00 am
- Location: Eastern Washington, US
Re: ArgumentException was unhandled during rotation
I would still like to know whether you even tried to reproduce the problems with my sample. In the case of the rotation problem, it crashes immediately in TeeChart code. You do not even need to look into my code.
In the case of the cursor tool problem, I have isolated the location of the problem in my code so that you can simply debug in the vicinity of a few lines of my code to determine why the technique I am using is not working. If I were to isolate the problem to a smaller example, the code in the vicinity of the problem would not be different.
In my opinion, making my sample project smaller is not going make your job any easier. It is definitely going to be more work for me, and I don't have alot of spare time either.
In the case of the cursor tool problem, I have isolated the location of the problem in my code so that you can simply debug in the vicinity of a few lines of my code to determine why the technique I am using is not working. If I were to isolate the problem to a smaller example, the code in the vicinity of the problem would not be different.
In my opinion, making my sample project smaller is not going make your job any easier. It is definitely going to be more work for me, and I don't have alot of spare time either.
-
- Site Admin
- Posts: 14730
- Joined: Mon Jun 09, 2003 4:00 am
- Location: Banyoles, Catalonia
- Contact:
Re: ArgumentException was unhandled during rotation
Hi Kent,
I'm taking over this issue as Sandra is on holidays now. Regarding the issues that are still open:
Hope this helps!
I'm taking over this issue as Sandra is on holidays now. Regarding the issues that are still open:
You should better try using a Steema.TeeChart.WPF.Tools.Rotate tool or implement rotation as in this post or may be more precise in the attached code.- Crash during 3D rotation
1. Import the supplied data file
2. Click the "Enable Chart Rotation" icon in the bottom toolbar (second from left)
3. Drag the mouse over the chart with the left button pressed to attempt rotation.
This is most likely because you are using screen or window coordinates instead of chart coordinates. At point P in DisplayMouseQueryFeedback you should substract chart's left coordinate from its X coordinate and chart's top coordinate from its Y coordinate. Actually assigning it as shown below does the job.- Cursor over chart to query data values does not work
1. Import the supplied data file
2. Click the "Enable chart data feedback at cursor location" icon in bottom toolbar (6th icon from right).
3. Hover the mouse pointer over the chart. The event handler for MouseMove (ChartHMICBEMA_MouseMove calls DisplayMouseQueryFeedback()) does not produce a "Match" condition. (See line 3601 of FormChartTimeSeries.cs)
Code: Select all
P = e.GetPosition(FChartTimeSeries.ChartDisplay);
- Attachments
-
- Form1.zip
- (1.75 KiB) Downloaded 570 times
Best Regards,
Narcís Calvet / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |
-
- Newbie
- Posts: 20
- Joined: Mon Feb 14, 2005 5:00 am
- Location: Eastern Washington, US
Re: ArgumentException was unhandled during rotation
The example code that you sent to me that illustrates the technique for rotation was written for WinForms, not WPF. I tried to implement your technique in WPF, but the Height and Width members of the TChart component are not initialized, so the technique does not work. I have attached the revised version of one of my source files that you can plug into my original application to reproduce the behavior that I am experiencing. Please test the WPF implementation. It does not help to do this in WinForms, because your WPF implementation is not the same.
Please examine function ChartHMICBEMA_MouseMove in PageChart.xaml.cs.
NOTE: I attached the file as PageChart.xaml.zip, but it is not zipped. Just rename the file.
Thanks,
Kent
Please examine function ChartHMICBEMA_MouseMove in PageChart.xaml.cs.
NOTE: I attached the file as PageChart.xaml.zip, but it is not zipped. Just rename the file.
Thanks,
Kent
- Attachments
-
- PageChart.xaml.zip
- replacement source file (not zipped)
- (66.73 KiB) Downloaded 548 times