Steema Issues Database

Note: This database is for bugs and wishes only. For technical support help, if you are a customer please visit our online forums;
otherwise you can use StackOverflow.
Before using this bug-tracker we recommend a look at this document, Steema Bug Fixing Policy.



Bug 785 - Automatic axis labels and title re-positioning considering chart rotation
Summary: Automatic axis labels and title re-positioning considering chart rotation
Status: CONFIRMED
Alias: None
Product: VCL TeeChart
Classification: Unclassified
Component: Axis (show other bugs)
Version: 140512
Hardware: PC Windows
: Normal enhancement
Target Milestone: ---
Assignee: Steema Issue Manager
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-05-30 05:49 EDT by narcís calvet
Modified: 2014-05-30 05:49 EDT (History)
0 users

See Also:
Chart Series: ---
Delphi / C++ Builder RAD IDE Version:


Attachments
Chart image of overlapping labels and title. (394.75 KB, image/png)
2014-05-30 05:49 EDT, narcís calvet
Details

Note You need to log in before you can comment on or make changes to this bug.
Description narcís calvet 2014-05-30 05:49:36 EDT
Created attachment 212 [details]
Chart image of overlapping labels and title.

It would be very interesting that axis labels and titles could automatically re-position themselves to not overlap chart walls, axis and series depending on the chart rotation. The problem can be easily reproduce with the code snippet below and observed with the attached image.

uses TeeSurfa, TeeTools;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Chart1.AddSeries(TTowerSeries.Create(Self)).FillSampleValues();
  Chart1.Aspect.Orthogonal:=False;
  Chart1.Aspect.Zoom:=80;
  Chart1.Chart3DPercent:=70;
  Chart1.DepthAxis.Visible:=True;
  Chart1.Axes.Bottom.Title.Text:='Bottom axis title';
  Chart1.Axes.Bottom.Title.Font.Color:=clRed;
  Chart1.Axes.Bottom.Title.Font.Size:=20;

  Chart1.Tools.Add(TRotateTool.Create(Self));
end;

procedure TForm1.Chart1GetAxisLabel(Sender: TChartAxis;
  Series: TChartSeries; ValueIndex: Integer; var LabelText: String);
begin
  if Sender <> Chart1.Axes.Left then
    LabelText:='long label text';
end;