Hello,
I am facing a strange problem with THorizBarSeries but I am not able to reproduce this error outside my app, so I will try to explain it here. I am using the latest TChart 8.05 with Turbo Delphi Pro and WinXP.
I have a chart with a THorizBarSeries and by default the left axis is set to Inverted. I need the bars to be continues (touch each other) so I set the Bar Width to 100% and no border visible. I load my data to the plot, zoom in it looks ok, like plot1.gif. Now, I have an option for the user to invert the axis and load the data again, so the chart looks like plot2.gif. After a lot of tests I realized that there is something wrong with the border. If I enable the border to be visible then as you can see in the case where by left axis is not inverted (plot4.gif) the border is drawn over the bar and this is why the gaps appear although it is not clear to me why the gap appears when border is not visible.
Can anyone please share some thoughts and where to look inside the TChart code in order to resolve this?
Kindest regards
http://img341.imageshack.us/img341/8416/plot1.gif
http://img518.imageshack.us/img518/9693/plot2.gif
http://img33.imageshack.us/img33/5995/plot3.gif
http://img341.imageshack.us/img341/1476/plot4.gif
Strange bug in THorizBarSeries
Re: Strange bug in THorizBarSeries
Hi johnnix,
I'm not able to reproduce this here. Could you please see if the attached project reproduces the issue for you? If not, could you please try to modify it until the problem will be reproducible?
I'm not able to reproduce this here. Could you please see if the attached project reproduces the issue for you? If not, could you please try to modify it until the problem will be reproducible?
- Attachments
-
- test.zip
- (1.51 KiB) Downloaded 553 times
Best Regards,
Yeray Alonso Development & Support Steema Software Av. Montilivi 33, 17003 Girona, Catalonia (SP) | |
Please read our Bug Fixing Policy |
Re: Strange bug in THorizBarSeries
Hello Yeray,
Unfortunately there is no way to reproduce the error outside my app. Can you please advice me where to look into the code? I first need to resolve why the border is drawn before the bars, so I could need some help where to look into the code.
Regards
Unfortunately there is no way to reproduce the error outside my app. Can you please advice me where to look into the code? I first need to resolve why the border is drawn before the bars, so I could need some help where to look into the code.
Regards
Re: Strange bug in THorizBarSeries
Hello Yeray,
Made some progress and just found where the error is. In Series.pas line 5029 the code is:
If I change it to then in my case it works ok but in a clean project like the one you send me the error now appears!!!! What could be wrong so that the statement Pred(ValueIndex) does not work in my chart when axis is Inverted?
Regards
Made some progress and just found where the error is. In Series.pas line 5029 the code is:
Code: Select all
Bottom:=CalcYPos(Pred(ValueIndex))
Code: Select all
Bottom:=CalcYPos(Succ(ValueIndex))
Regards
Re: Strange bug in THorizBarSeries
Hello Yeray,
Please try the following code in the example you send me:
You will notice the gaps between the bars... I am guessing it has something to do with the Y values I add (from larger to smallest). Please let me know if there is a quick work around for that. Please also notice that the gaps disappear when the 3D is on and also some value is not displayed correctly.
Regards
Please try the following code in the example you send me:
Code: Select all
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
Chart1.View3D := false;
Chart1.Color := clwhite;
Chart1.Legend.Visible := false;
Chart1.Title.Visible := false;
Series1 := THorizBarSeries.Create(self);
Chart1.AddSeries(Series1);
series1.AddXY(6,24);
series1.AddXY(8,23);
series1.AddXY(12,22);
series1.AddXY(10,21);
series1.AddXY(4,20);
series1.AddXY(9,19);
series1.AddXY(12,18);
series1.AddXY(2,17);
series1.AddXY(11,16);
series1.AddXY(5,15);
series1.AddXY(3,14);
Series1.BarWidthPercent := 100;
Series1.Pen.Visible := false;
Series1.Marks.Visible := false;
Series1.ColorEachPoint := true;
Chart1.Axes.Bottom.SetMinMax(0,24);
end;
Regards
Re: Strange bug in THorizBarSeries
Hello,
Ok, here is an interesting point I just found. After you add my code to import series data you will notice that the gaps appear. Now, edit the chart, change the series from HorizBar to something else e.g. Line and then change it back to HorizSeries. Alter the BarWidth to 100% and here it is, works ok!!!!!
Regards
Ok, here is an interesting point I just found. After you add my code to import series data you will notice that the gaps appear. Now, edit the chart, change the series from HorizBar to something else e.g. Line and then change it back to HorizSeries. Alter the BarWidth to 100% and here it is, works ok!!!!!
Regards
Re: Strange bug in THorizBarSeries
Hi johnnix,
Excuse the delay.
I've seen that there seems to be a problem in the order of the points because with your code that adds the points with AddXY method so I'll add this to the wish list to be fixed in further releases. In the meanwhile you have two workarounds. You can force Teechart to reorder the YValues:
Or you could be carefull and add the values in the inverse way than the one you did:
Excuse the delay.
I've seen that there seems to be a problem in the order of the points because with your code that adds the points with AddXY method so I'll add this to the wish list to be fixed in further releases. In the meanwhile you have two workarounds. You can force Teechart to reorder the YValues:
Code: Select all
Series1.YValues.Sort;
Code: Select all
series1.AddXY(3,14);
series1.AddXY(5,15);
series1.AddXY(11,16);
series1.AddXY(2,17);
series1.AddXY(12,18);
series1.AddXY(9,19);
series1.AddXY(4,20);
series1.AddXY(10,21);
series1.AddXY(12,22);
series1.AddXY(8,23);
series1.AddXY(6,24);
Best Regards,
Yeray Alonso Development & Support Steema Software Av. Montilivi 33, 17003 Girona, Catalonia (SP) | |
Please read our Bug Fixing Policy |
Re: Strange bug in THorizBarSeries
Hello Yeray,
The Sort method do the trick just fine!!! Thank you very much for your support
Regards
The Sort method do the trick just fine!!! Thank you very much for your support
Regards