Page 1 of 3

Division by zero with TBarSeries

Posted: Thu Apr 24, 2008 10:54 am
by 10047319
Dear Steema Team,

We hit a "division by zero" error in TeeChartPro 8.02 VCL / CodeGear™ C++Builder® 2007 Version 11.0.2902.10471 in the following code:

Code: Select all

   FChartSeries = new TChartSeries(Chart1);
   FChartSeries->ParentChart = Chart1;
   FChartSeries->AddXY(1, 1.0, "", clTeeColor);
   FChartSeries->AddXY(2, 2.0, "", clTeeColor);
   FChartSeries->AddXY(4, 3.0, "", clTeeColor);

   //ChangeSeriesType(FChartSeries, __classid(TLineSeries)); // workaround
   ChangeSeriesType(FChartSeries, __classid(TBarSeries));
The error comes up during next Paint(). Please let me know when this bug is resolved.

Thanks,
Manfred

Posted: Thu Apr 24, 2008 11:17 am
by narcis
Hi Manfred,

Thanks for reporting. I could reproduce the issue here and added it (TV52013006) to our defect list as a high priority item to be fixed for next releases.

I recommend you to be aware at this forum or our RSS feed for new release announcements and what's been fixed on them.

BTW: Code below works fine for me here using same TeeChart version and IDE than you. I also added Series.hpp unit in the form's header and a pragma link in the form's code.

Code: Select all

void __fastcall TForm1::FormCreate(TObject *Sender)
{
	TChartSeries *FChartSeries = new TChartSeries(Chart1);
	FChartSeries->ParentChart = Chart1;
	FChartSeries->AddXY(1, 1.0, "", clTeeColor);
	FChartSeries->AddXY(2, 2.0, "", clTeeColor);
	FChartSeries->AddXY(4, 3.0, "", clTeeColor);

	//ChangeSeriesType(FChartSeries, __classid(TLineSeries)); // workaround
	ChangeSeriesType(FChartSeries, __classid(TBarSeries));
}

Posted: Thu Apr 24, 2008 6:30 pm
by 10047319
Hi Narcis,

Thanks for you fast reply. The bit funny thing is that the bug seems to go away once you provide any (even empty) handler for TForm::OnCreate event.

Code: Select all

void __fastcall TMainForm::FormCreate(TObject *Sender)
{
   // nothing
}

void __fastcall TMainForm::Button1Click(TObject *Sender)
{
   FChartSeries = new TChartSeries(Chart1);
   FChartSeries->ParentChart = Chart1;
   FChartSeries->AddXY(1, 1.0, "", clTeeColor);
   FChartSeries->AddXY(2, 2.0, "", clTeeColor);
   FChartSeries->AddXY(4, 3.0, "", clTeeColor);

   ChangeSeriesType(FChartSeries, __classid(TBarSeries));
}
Isn't is strange? Happy debugging :-)

Best Regards,
Manfred

Posted: Fri Apr 25, 2008 7:48 am
by narcis
Hi Manfred,

Thanks for the info.

Yes, it's quite strange. It's even more strange that I can't reproduce the issue here anymore without having made any change in TeeChart sources. I must be missing something. Anyway, I've updated the information in the bug list to be reviewed.

Posted: Fri Apr 25, 2008 10:01 am
by 10047319
Hi Narcis,

We also have a callstack for this bug, which might be useful for you as well

Code: Select all

200091c3 +033 rtl100.bpl        System                  @_lldiv
42253586 +00e Tee811.bpl        Series                  TCustomBarSeries.InternalApplyBarMargin
4225421e +01a Tee811.bpl        Series                  TBarSeries.CalcHorizMargins
422399c5 +0f1 Tee811.bpl        Teengine                TCustomAxisPanel.InternalDraw
4221e87e +072 Tee811.bpl        Teeprocs                TCustomTeePanel.Draw
4221e673 +01b Tee811.bpl        Teeprocs                TCustomTeePanel.Draw
4221e8c8 +020 Tee811.bpl        Teeprocs                TCustomTeePanel.Paint
02d27d4f +00b pvs_DaGraphic.bpl pvs_tchart.cpp   884 +2 TPVSChart.Paint
20145563 +057 vcl100.bpl        Controls                TCustomControl.PaintWindow
20140825 +055 vcl100.bpl        Controls                TWinControl.PaintHandler
20140ff8 +048 vcl100.bpl        Controls                TWinControl.WMPaint
201454fc +010 vcl100.bpl        Controls                TCustomControl.WMPaint
2013c4f3 +2bb vcl100.bpl        Controls                TControl.WndProc
20140673 +4fb vcl100.bpl        Controls                TWinControl.WndProc
2013fd9c +02c vcl100.bpl        Controls                TWinControl.MainWndProc
7c90f0a5 +059 ntdll.dll                                 RtlAnsiStringToUnicodeString
7c90eae0 +010 ntdll.dll                                 KiUserCallbackDispatcher
7e4196c2 +00a USER32.dll                                DispatchMessageA
201625d0 +0fc vcl100.bpl        Forms                   TApplication.ProcessMessage
2016260a +00a vcl100.bpl        Forms                   TApplication.HandleMessage
201628ff +0b3 vcl100.bpl        Forms                   TApplication.Run
Hope this would bring you to a solution faster.

Posted: Fri Apr 25, 2008 10:05 am
by narcis
Hi Manfred,

Thanks for your collaboration again. Yesterday I debugged the problem using TeeChart sources and the error already showed me the exact line code where it was happening. I tried a few quick possible fixes but were not acceptable because they broke other things.

Posted: Wed May 07, 2008 5:44 pm
by 10047319
Any news?

Posted: Thu May 08, 2008 7:19 am
by narcis
Hi Manfred,

Not yet. I recommend you to be aware at this forum or subscribe to our RSS feed for new release announcements and what has been fixed on them.

Posted: Wed Sep 03, 2008 11:50 am
by 10047319
Dear Narcís,

RSS feed still keeps silence :-( Could you please let me know where we stand? This bug starts getting on the nerves of our customers.

Thanks,
Manfred

Posted: Wed Sep 03, 2008 1:07 pm
by narcis
Hi Manfred,

This issue was fixed for v8.03, which is currently in prerelease mode. A few issues need to be ironed prior to the final release. In the meantime I've sent you current version installer where the bug should be already fixed.

Posted: Thu Sep 04, 2008 6:51 am
by 10047319
Hi Narcís,

Thank you for a quick reply. The link that you gave me is a Delphi version of TeeChartPro, .hpp-files missing. It refuses to install on C++ Builder 2007 11.0.2902.10471 (December update). Could you please send me another one?

Thanks in advance,
Manfred


P.S: just curious to know, are you going to support Delphi/C++Builder 2009 Tiburon in version 8.03?

Posted: Thu Sep 04, 2008 8:05 am
by narcis
Hi Manfred,
Thank you for a quick reply. The link that you gave me is a Delphi version of TeeChartPro, .hpp-files missing. It refuses to install on C++ Builder 2007 11.0.2902.10471 (December update). Could you please send me another one?
This is installer should work for both Delphi and C++ Builder 2007 as RAD Studio 2007 is usually shipped with both personalities only Delphi packages are necessary. Do you only have C++ Builder personality installed? Which are the exact error messages you get?

Thanks in advance.
P.S: just curious to know, are you going to support Delphi/C++Builder 2009 Tiburon in version 8.03?
Yes, we are working on this.

Posted: Thu Sep 04, 2008 10:53 am
by 10047319
Hi Narcís,

I really appreciate the speed of your replies. You were right, it was just a wrong installation on my travelling laptop. Finally I managed to install TeeChartPro 8.03 prerelease, but unfortunately hit another (even more severe) bug which our customer wouldn't like for sure.

I used the same test application as in my first post, and just activated all 4 anchors for the TChart component to make in resizable. Unfortunately the whole application hangs with 100% CPU load when you try to reduce its size less than a certain amount. However it works well with an empty chart (no series).

Is it one of those glitches you wanted to iron out before final release? I can send you my code if needed.

Take Care,
Manfred

Posted: Thu Sep 04, 2008 11:28 am
by narcis
Hi Manfred,

No, I don't remember this issue. Yes please, could you send a simple example project we can run "as-is" to reproduce the problem here?

You can either post your files at news://www.steema.net/steema.public.attachments newsgroup or at our upload page.

Thanks in advance.

Posted: Thu Sep 04, 2008 11:51 am
by 10047319
narcis wrote:Yes please, could you send a simple example project we can run "as-is" to reproduce the problem here?
Uploaded TeeTest803pre.zip via upload page. Application resizes nicely unless you push "Add Series" button. Please inform me weather you could reproduce a bug.