TXLSXChartLayout speichert ein felderhaltendes manuelles Layout für Zeichenflächen, Diagramm- oder Achsentitel sowie Legenden
Deklaration
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;
Koordinatenmodell
X, Y, Width und Height werden auf das Diagrammrechteck normiert. Edge-X und -Y sind linke und obere Koordinaten, Edge-Breite und -Höhe sind rechte und untere Koordinaten, Faktor-X und -Y verschieben die automatische Position, und Faktor-Breite und -Höhe sind diagrammrelative Größen
Das Modell behält jedes Feld und jeden Modus unabhängig bei. Beim Laden ausgesparte Elemente bleiben ausgespart, und ungültige numerische Tokens überleben einen unveränderten Save, während das Rendering auf automatische Geometrie zurückfällt
Titel-Layouts dürfen nur X und Y enthalten und behalten die automatisch gemessene Größe. Zeichenflächen- und Legenden-Layouts benötigen alle vier Koordinaten
SetPositionAndSize weist alle vier Werte zu, markiert ihre Modi als vorhanden und aktiviert das Layout in einem Aufruf. Auch die einzelnen Koordinaten-Setter aktivieren das Layout
Modi und Ziel
| xlsxChartLayoutEdge | Position relativ zur Diagrammkante, standardmäßig für X und Y verwendet |
| xlsxChartLayoutFactor | Größen- oder Offset-Faktor, standardmäßig für Breite und Höhe verwendet |
| Target | Inneres oder äußeres Plotrechteck, nur für PlotAreaLayout von Bedeutung |
Auflösung und Konvertierung
TXLSXChartLayoutResolver löst die Rechtecke für Titel, Legende, innere und äußere Zeichenfläche sowie Achsentitel je einmal auf — für Paginierung, SVG, PDF, Bild-, Vorschau-, Druck-, Viewer- und HTML-Ausgabe. Ungültige oder unvollständige Geometrie behält das automatische Rechteck, während ein gültiges Rechteck außerhalb des Diagramms ohne Größenänderung auf die nächstgelegene Position innerhalb des Diagramms rückt
Die ODF-Konvertierung bildet die aufgelöste Geometrie auf absolute Diagrammdistanzen ab. Titel und Legende verwenden svg:x und svg:y, die Zeichenfläche zusätzlich svg:width und svg:height. Eine manuelle ODF-Legende lässt chart:legend-position weg, weil dieses Attribut absolute Koordinaten überschreiben würde
Beispiel
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);
Siehe auch