Page 1 of 1
Axis label height calculation does not consider multiline
Posted: Mon Nov 14, 2016 6:32 am
by 16578912
Hi,
Axis label height calculation does not consider multiline. When I add SrollPager and axis is multiline there is not enough place to display labels correctly.
- scrollpagermultiline.png (123.41 KiB) Viewed 10195 times
Best Regards,
Grzegorz
Re: Axis label height calculation does not consider multiline
Posted: Mon Nov 14, 2016 1:11 pm
by yeray
Hello Grzegorz,
I could reproduce it (without using scrollpager tool) so I've added it to the public tracker:
http://bugs.teechart.net/show_bug.cgi?id=1684
Re: Axis label height calculation does not consider multiline
Posted: Mon Nov 14, 2016 1:17 pm
by yeray
Hello Grzegorz,
I fixed it for the next maintenance release.
Since you are a source code customer, you could apply the modification in your sources (and recompile them). At the TChartAxis.GetAxisSeriesLabel function in TeEngine.pas you'll find:
Code: Select all
talPointValue : if MandatoryAxis=Self then // DB
ALabel:=LabelValue(MandatoryValueList.Value[AIndex])
else
ALabel:=LabelValue(NotMandatoryValueList.Value[AIndex])
Add "talValue" so it ends looking like this:
Code: Select all
talPointValue,
talValue : if MandatoryAxis=Self then // DB
ALabel:=LabelValue(MandatoryValueList.Value[AIndex])
else
ALabel:=LabelValue(NotMandatoryValueList.Value[AIndex])
Re: Axis label height calculation does not consider multiline
Posted: Fri Nov 18, 2016 7:12 am
by 16578912
Hello,
I've apply Your fix but there is some more problems especially when one enable axis title.
Here is an example
Code: Select all
TChartSeries* pTChartSeries = Chart1->AddSeries(new TLineSeries(Chart1));
if(pTChartSeries)
{
dynamic_cast<TLineSeries*>(pTChartSeries)->Stairs = true;
pTChartSeries->Title = "Series" + IntToStr(Chart1->SeriesCount() - 1);
pTChartSeries->XValues->DateTime=true;
pTChartSeries->FillSampleValues(100);
}
Chart1->BottomAxis->ExactDateTime = true;
Chart1->BottomAxis->Increment = DateTimeStep[dtFifteenMinutes];
Chart1->BottomAxis->DateTimeFormat = "c";
Chart1->BottomAxis->LabelsMultiLine = true;
Chart1->BottomAxis->Title->Caption = "Axis Title";
Chart1->BottomAxis->Title->Visible = true;
Chart1->BottomAxis->Title->Transparent = false;
Chart1->BottomAxis->Title->Color = clRed;
When chart is unzoomed it looks like this
- unzoom.png (25.4 KiB) Viewed 10153 times
There is a lot of free space below axis titile
When one try to zoom and labels are really multiline labels are cover axis title.
- zoom.png (22.13 KiB) Viewed 10149 times
Best Regards,
Grzegorz
Re: Axis label height calculation does not consider multiline
Posted: Fri Nov 18, 2016 11:15 am
by yeray
Hello Grzegorz,
I could reproduce the problem you are reporting so I've re-factored the fix for
#1684.
Since you own the Source Code I'll send a mail with the modified TeEngine.pas unit to the mail you have registered in this forum.
Re: Axis label height calculation does not consider multiline
Posted: Mon Nov 21, 2016 7:10 am
by 16578912
Hello,
The fix that You send me works, but only for standard axis. On custom axis title overlap labels when multiline is enabled.
Best Regards,
Grzegorz
Re: Axis label height calculation does not consider multiline
Posted: Tue Nov 22, 2016 9:47 am
by yeray
Hello,
This is a different issue, so I've created a new ticket:
http://bugs.teechart.net/show_bug.cgi?id=1692