TXLSXChartLayout stores a complete normalized manual layout for plot areas, chart or axis titles and legends
Declaratie
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;
Coördinatenmodel
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
Het model bewaart elk veld en elke modus onafhankelijk; weglatingen in geladen bestanden blijven weggelaten en ongeldige numerieke tokens overleven een ongewijzigde save, terwijl rendering terugvalt op automatische geometrie
Titellayouts mogen alleen X en Y bevatten en behouden de automatisch gemeten grootte; layouts van plotgebied en legenda vereisen alle vier de coördinaten
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
Modi en 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 |
Resolutie en conversie
TXLSXChartLayoutResolver leidt de rectangles voor titel, legenda, binnen- en buiten-plotarea en as-titels één keer af voor paginering, SVG, PDF, afbeeldings-, preview-, print-, viewer- en HTML-uitvoer; ongeldige of onvolledige geometrie houdt de automatische rectangle aan, terwijl een geldige rectangle buiten de grafiek naar de dichtstbijzijnde positie binnen de grafiek verschuift zonder van grootte te veranderen
ODF-conversie mapt de afgeleide geometrie op absolute grafiekafstanden; titel en legenda gebruiken svg:x en svg:y, de plotarea bovendien svg:width en svg:height; een handmatige ODF-legenda laat chart:legend-position weg, omdat dat attribuut absolute coördinaten overschrijft
Voorbeeld
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);
Zie ook