RELEASE 3.5.3425.20244 Problems

TeeChart for Microsoft Visual Studio .NET, Xamarin Studio (Android, iOS & Forms) & Monodevelop.
Post Reply
qcrnd
Advanced
Posts: 214
Joined: Mon Sep 04, 2006 12:00 am

RELEASE 3.5.3425.20244 Problems

Post by qcrnd » Mon May 25, 2009 10:29 am

Hi

I just tested your latest release. I found 2 serious problem

1. With line charts. The Line width in 2D seems to be connected to the Outline. I cannot set the LinePen width without modifying the Outline.
This is a regression from the Feburay version.

2. I understood that the latest version was supposed to fix labels vanishing when resizing the chart. I see that this issue hasnt been fully fixed. I still found labels vanishing when resizing .
I uploaded a sample application demonstrating vanishing labels.
TChartV3TesterDisappearingRightBarVer3.5.3425.20244.zip

Run the application and click on the button Width778

Yeray
Site Admin
Site Admin
Posts: 9612
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Post by Yeray » Mon May 25, 2009 11:44 am

Hi qcrnd,

1. The last example I've posted here seems to work fine for me here with latest v3 available. Have you tried it?

2. Do you mean the issue discussed here? I think that the problem is more related to the "last bar dissapearing" than directly labels related problem, isn't it?
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

qcrnd
Advanced
Posts: 214
Joined: Mon Sep 04, 2006 12:00 am

Post by qcrnd » Mon May 25, 2009 12:41 pm

Hi Yeray
1. The last example I've posted here seems to work fine for me here with latest v3 available. Have you tried it?
In the latest v3, what you posted works Fine UNTIL the chart is drawn again (for example if I resize the chart), and then the border becomes thick again and LinePen width is automatically modified to the value of the Outline width. I also tested the chart with Hawkeye and played with the properties during running and found that when I change the LinePen width to be 1 , after any redraw of chart it returns to the value of the Outline width . there seems to be some connection between the 2 properties and the outline overrides the LinePen.
Seems like there is a little mixup between the two.

This also causes another problem . The symbols in the legend are the width of the LinePen and that makes them very thin.

Do you mean the issue discussed here? I think that the problem is more related to the "last bar dissapearing" than directly labels related problem, isn't it?
No - I mean the issue discussed here http://www.teechart.net/support/viewtop ... ac547373b6

You can easily see the problem with the sample I uploaded.

thanks

Yeray
Site Admin
Site Admin
Posts: 9612
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Post by Yeray » Mon May 25, 2009 1:37 pm

Hi qcrnd,

1. Yes you are right. I've modified the bug description (TF02014158) in order to consider this too.

2. Yes, it seems that this bug reappears for some specific cases so I've added it to the wish list to be revised for next releases (TF02014178).
Note that I could reproduce it with your latest project and in v3. With v4 it seems to be ok.
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

qcrnd
Advanced
Posts: 214
Joined: Mon Sep 04, 2006 12:00 am

Post by qcrnd » Mon May 25, 2009 2:11 pm

HI Yeray

Dont quite understand what the wishlist means. Can I be sure that later on versions of 3.5 will eventually fix this , or might I have to purchase the v4, becuase Im not sure we will be able to purchase v4 anytime in the future.

Also ... I have a workaround that solves the resizing issue . I use Line.AfterDrawValues event and reset the LinePen width to the correct value. HOwever I still have a problem with the Legend Symbols. They are too thin because now LinePen.width is 1.
Is there any way for now that I can make the symbol thicker , is there any event that I can use to temporarily change the LinePen width to something larger , before the legend is drawn , so that the symbols will be thicker , and they restore it to its original width so that lines will also look good
Thanks.

qcrnd
Advanced
Posts: 214
Joined: Mon Sep 04, 2006 12:00 am

Post by qcrnd » Tue May 26, 2009 9:48 am

Hi Yeray
I am trying to find a workaround to make the 2D symbols thicker.
I have something HOWEVER I see that this doesnt always work. I sometimes get the first symbol thinner.
Any idea why . See my code below.
Thanks.

void Symbol_OnSymbolDraw(object sender, SymbolDrawEventArgs e)
{
Line line = e.Series as Line;
LegendSymbol ls = sender as LegendSymbol;
ls.DefaultPen = false;
ls.Pen.Width = 5;
ls.Pen.Color = line.Color;
}

Yeray
Site Admin
Site Admin
Posts: 9612
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Post by Yeray » Tue May 26, 2009 10:09 am

Hi qcrnd,

1. The issue regarding "disappearing last bar" is difficult for us to ensure that it is fixed completely since it appears in specific charts. The only thing we can do (and will be a pleasure to do) is to test as many projects you wish with latest v3 or v4 and tell you if the problem is reproducible or not.

2. I recommend you to use OnAfterDraw event to draw your custom legend symbols because you are trying to draw symbols in a different way that they were thought. In the last example I posted here, I showed you how to do this.
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

qcrnd
Advanced
Posts: 214
Joined: Mon Sep 04, 2006 12:00 am

Post by qcrnd » Tue May 26, 2009 10:22 am

Hi Yeray
The Custom draw will require much more work and I am sure that I will encounter loads of problems related to positioning resizing etc. I prefer it handled automatically .

In anycase I want to try and work with the Legend.Symbol.OnSymbolDraw but I have a few questions which I need to confirm:
1. Is the Event called always AFTER the actual symbol is drawn
2. Is it quaranteed to always be called for all the symbols and in the order of the series array.

I think that if I can confirm these two issues and be sure that it will always work this way , I can find a way to modify the LegendSymbol each time to the correct color .

Please let me know
Thanks.

Yeray
Site Admin
Site Admin
Posts: 9612
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Post by Yeray » Tue May 26, 2009 10:47 am

Hi qcrnd,

The OnSymbolDraw event is called before than OnAfterDraw event. So, if you draw with OnAfterDraw over the legend symbols, you'll overwrite then changes from OnSymbolDraw.

But there is a bug (TF02013873) that will affect you. The changes made on the LegendSymbol in this event aren't applied to the actual symbol, but in the next one.

That's why I recommend you to use OnAfterDraw event. And note that using relative positions to the chart, you shouldn't find problems on resizing it. Anyway, if you find any problem, we'll try to find a satisfying solution for you.
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

qcrnd
Advanced
Posts: 214
Joined: Mon Sep 04, 2006 12:00 am

Post by qcrnd » Tue May 26, 2009 1:04 pm

Hi Yeray
I have just tried your suggestion using the AfterDraw . 3 Questions regarding your method.

1. Is there any reason why you used the GetLegendRect event to get the Legend Top position instead of simply using a local variable inside AfterDraw event and setting it

int FirstItemTopLegend = tChart1.Legend.Top

2. I would like to make sure that there are no artifacts due to the tChart default drawing of the Symbols just incase my symbols wont fully cover the defautl symbols created automatically I cannot set the Legend.Symbol.Visible to false because then the Legend will not have room for the symbols. I just want them to be invisible . The only I can think of is doing
tChart1.Legend.Symbol.DefaultPen = false;
tChart1.Legend.Symbol.Pen.Transparency = 100;

Do you have a better way ?


3. I want the constants you defined hard coded to be taken from the tChart itself and not to define hard coded numbers. Can I use the LegendItem SymbolRectangle instead . ?

void tChart1_AfterDraw(object sender, Graphics3D g)
{
for (int i = 0; i < tChart1.Series.Count; i++)
{
tChart1.Graphics3D.Brush.Color = tChart1.Series.Color;
tChart1.Graphics3D.Pen.Color = Color.Gray;
tChart1.Graphics3D.Rectangle(tChart1.Legend.Items.SymbolRectangle);
}

}


Thanks.

Thanks.

Yeray
Site Admin
Site Admin
Posts: 9612
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Post by Yeray » Wed May 27, 2009 12:25 pm

Hi qcrnd,

1. Yes, excuse me. I took that from another example where there were two legends, one above the other and I needed to retrieve the top position of the current legend before drawing custom symbols on it.

2. I think that you probably don't need to force legend symbol to be transparent if you set it as not default. I've tested it by incrementing the series pen width and simply with this, the legend seems to remain fine.

Code: Select all

tChart1.Legend.Symbol.DefaultPen = false;
3. I don't see why you couldn't. I'm afraid that's another fault from myself copying the code from the other example where there weren't legend symbols but checkboxes. I'd like to apologize for creating confusion.

Finally, maybe you would also like to use:

Code: Select all

tChart1.Legend.Symbol.Squared = true;
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

Post Reply