TXLSXChartLayout stores a complete normalized manual layout for plot areas, chart or axis titles and legends
Declaration
type
TXLSXChartLayoutTarget = (xlsxChartLayoutOuter, xlsxChartLayoutInner);
TXLSXChartLayoutMode = (xlsxChartLayoutFactor, xlsxChartLayoutEdge);
TXLSXChartLayout = class
property Enabled: Boolean;
property HasTarget: Boolean;
property HasXMode, HasYMode, HasWidthMode, HasHeightMode: Boolean;
property HasX, HasY, HasWidth, HasHeight: Boolean;
property Target: TXLSXChartLayoutTarget;
property XMode, YMode, WidthMode, HeightMode: TXLSXChartLayoutMode;
property X, Y, Width, Height: Double;
procedure ClearTarget;
procedure ClearXMode;
procedure ClearYMode;
procedure ClearWidthMode;
procedure ClearHeightMode;
procedure ClearX;
procedure ClearY;
procedure ClearWidth;
procedure ClearHeight;
procedure SetPositionAndSize(AX, AY, AWidth, AHeight: Double);
procedure Assign(Source: TXLSXChartLayout);
procedure Clear;
end;
Coordinate model
X, Y, Width and Height are normalized against the chart rectangle Width and height are constrained to 0 through 1, while factor-based X and Y may use -1 through 1
Модель зберігає кожне поле і кожен режим незалежно: завантажені пропуски залишаються пропусками, а недійсні числові токени переживають збереження без змін, тоді як рендеринг повертається до автоматичної геометрії
Макети заголовків можуть містити лише X і Y та зберігають автоматично виміряний розмір; макети області побудови й легенди вимагають усіх чотирьох координат
SetPositionAndSize assigns all four values and enables the layout in one call This satisfies Excel's requirement that manual coordinates be emitted as a complete group
Modes and target
| xlsxChartLayoutEdge | Position from the chart edge, used by default for X and Y |
| xlsxChartLayoutFactor | Size or offset factor, used by default for width and height |
| Target | Inner or outer plot rectangle and meaningful only for PlotAreaLayout |
Resolution and conversion
TXLSXChartLayoutResolver обчислює прямокутники заголовка, легенди, внутрішньої та зовнішньої областей побудови, а також заголовків осей один раз для виводу в pagination, SVG, PDF, зображення, preview, друк, viewer і HTML; недійсна або неповна геометрія залишає автоматичний прямокутник, а коректний прямокутник поза межами діаграми зміщується до найближчої позиції всередині діаграми без зміни розміру
Перетворення в ODF відображає розв'язану геометрію в абсолютні відстані діаграми: заголовок і легенда використовують svg:x і svg:y, а область побудови — також svg:width і svg:height; ручна легенда ODF пропускає chart:legend-position, оскільки цей атрибут перекриває абсолютні координати
Example
Chart.PlotAreaLayout.Target := xlsxChartLayoutInner;
Chart.PlotAreaLayout.SetPositionAndSize(0.12, 0.18, 0.72, 0.64);
Chart.TitleLayout.SetPositionAndSize(0.1, 0.02, 0.6, 0.12);
Chart.LegendLayout.SetPositionAndSize(0.2, 0.84, 0.6, 0.1);
See also